Champions: 1991, 1992, 1993, 1996, 1997, 1998
Conference Titles: 1991, 1992, 1993, 1996, 1997, 1998
Division Titles: 1975, 1991, 1992, 1993, 1996, 1997, 1998, 2011, 2012
This assessment task allows you to consolidate and apply the concepts and skills you’ve learnt throughout the semester. This assessment requires you to generate a reproducible data analysis project.
Your reproducible data analysis project will be hosted as a repository on GitHub and you are required to submit the URL to your GitHub repository.
You are a data analyst with the Chicago Bulls competing in the NBA (national basketball association). In the most recent NBA season (2018-19), your team placed 27th out of 30 (for win-loss record). Your team’s budget for player contracts next season is $118 million, ranked 26th out of 30 (for the purpose of this assignment, next season is 2019-20). For context, the team with the highest payroll budget is Portland with $148 million, while the best performing team was Milwaukee Bucks (who clinched the best league record in 2018-19 who clinched the best league record in 2018-29) with $131 million.
You have been tasked by the general manager of Chicago Bulls to find the best five starting players one from each position) your team can afford. (Make sure you don’t use up all of your money on just these five players, you still need to fill a full team roster, but are just focussed on finding five starting players here). You can choose players that are already playing for Chicago Bulls, you just need to prove that they are worth it.
## ── Attaching packages ───────────────────────────────────────────────────── tidyverse 1.3.0 ──
## ✓ ggplot2 3.3.0 ✓ purrr 0.3.4
## ✓ tibble 3.0.1 ✓ dplyr 0.8.5
## ✓ tidyr 1.1.0 ✓ stringr 1.4.0
## ✓ readr 1.3.1 ✓ forcats 0.5.0
## ── Conflicts ──────────────────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(prettydoc)
library(broom)
library(dplyr)
library(ggplot2)
library(knitr)
library(kableExtra)##
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
##
## group_rows
##
## Attaching package: 'magrittr'
## The following object is masked from 'package:purrr':
##
## set_names
## The following object is masked from 'package:tidyr':
##
## extract
We have been provided the following data sets: 1. 2018-19_nba_player-statistics.csv : sourced from basketball-reference.com
2018-19_nba_player-salaries.csv : sourced from hoopshype.com/salaries
2019-20_nba_team-payroll.csv : sourced from hoopshype.com/salaries
2018-19_nba_team-statistics_1.csv : sourced from basketball-reference.com
2018-19_nba_team-statistics_2.csv : sourced from basketball-reference.com
Read in the various files using the read_csv() function from the readr package.
## Parsed with column specification:
## cols(
## .default = col_double(),
## player_name = col_character(),
## Pos = col_character(),
## Tm = col_character()
## )
## See spec(...) for full column specifications.
## Warning: Missing column names filled in: 'X4' [4], 'X5' [5], 'X6' [6], 'X7' [7]
## Parsed with column specification:
## cols(
## player_id = col_double(),
## player_name = col_character(),
## salary = col_double(),
## X4 = col_logical(),
## X5 = col_logical(),
## X6 = col_logical(),
## X7 = col_logical()
## )
## Warning: Missing column names filled in: 'X23' [23], 'X24' [24], 'X25' [25]
## Parsed with column specification:
## cols(
## .default = col_double(),
## Team = col_character(),
## X23 = col_logical(),
## X24 = col_logical(),
## X25 = col_logical()
## )
## See spec(...) for full column specifications.
## Parsed with column specification:
## cols(
## .default = col_double(),
## Team = col_character()
## )
## See spec(...) for full column specifications.
## Parsed with column specification:
## cols(
## team_id = col_double(),
## team = col_character(),
## salary = col_character()
## )
#Rename the variables to remove % and variables starting with numbers
p_stats <- rename(p_stats,
FGp = 'FG%', x3P = '3P', x3PA = '3PA', x3Pp = '3P%', x2P = '2P', x2PA = '2PA', x2Pp = '2P%', eFGp = 'eFG%', FTp = 'FT%')
team_stats <- rename(team_stats,
x3PAr = '3PAr', TSp = 'TS%', eFGp = 'eFG%', TOVp = 'TOV%', ORBp = 'ORB%', DRBp = 'DRB%')
team_stats_2 <- rename(team_stats_2,
FGp = 'FG%', x3P = '3P', x3PA = '3PA', x3Pp = '3P%', x2P = '2P', x2PA = '2PA', x2Pp = '2P%', FTp = 'FT%')#Replace the NAs found in shooting percentage of players who didn't attempt a particular shot
p_stats <- p_stats %>%
mutate_if(is.numeric, funs(ifelse(is.na(.), 0, .)))## Warning: funs() is soft deprecated as of dplyr 0.8.0
## Please use a list of either functions or lambdas:
##
## # Simple named list:
## list(mean = mean, median = median)
##
## # Auto named with `tibble::lst()`:
## tibble::lst(mean, median)
##
## # Using lambdas
## list(~ mean(., trim = .2), ~ median(., na.rm = TRUE))
## This warning is displayed once per session.
p_sal <- subset(p_sal, select = c(2:3)) # First remove player id as not required data
p_stats <- left_join(x = p_stats, y = p_sal) # This will join the salary to the respective Player## Joining, by = "player_name"
p_stats <- drop_na(p_stats) # We can see that some Player salaries are missing, so we must remove these from our dataset to ensure we are 100% confident that our picks will keep us under the salary cap.
which(is.na(p_stats), arr.ind = TRUE) # Quick test to identify if any NAs remain in the dataset## row col
x <- stringi::stri_trans_general(p_stats$player_name, "Latin-ASCII")
# Saves the player name list in new variable. Removes the accents and saves as a character vector
x_new <- as.data.frame(x, row.names = NULL, optional = FALSE, stringsAsFactors = FALSE) # Converts the vector into a single column data frame
x_new <- stringr::str_replace_all(x_new$x, pattern = "\\.", replacement = "")
# Removes the periodsin players names.
x_new <- as.data.frame(x, row.names = NULL, optional = FALSE, stringsAsFactors = FALSE) # Converts the vector into a single column data frame
x_new <- rename(x_new, player_name = 'x') # Changes column name to merge data framesp_stats <- bind_cols(x = x_new, y = p_stats) # Combines the no accent name variable to the main data frame.
p_stats <- subset(p_stats, select = -c(player_name1)) # Removes the player name variable that had the accents.
p_stats <- p_stats[, c(1,2,3,4,30,5:29)] # Move the salary variable into a more logical position in the table
p_stats <- rename(p_stats, Salary = 'salary') # Rename salary to Salary, to tidy up the appearance slightly.comb_team <- merge(team_stats, team_stats_2, by.x = "Team", by.y = "Team") # Combine the two sheets, matching by the Team names as the order of the two sheets is different.
comb_team <- subset(comb_team, select = -c(2, 23)) # This will remove the 'Ranking' columns that appeared twice. They aren't necessary in this analysis, so have been removed.
comb_team <- comb_team[, c(1, 2, 22:23, 3:21, 24:44)] # The next three pieces of code, will reorganise the data into an order that is preferable for me.
comb_team <- comb_team[, c(1:15, 36:44, 16:35)]
comb_team <- comb_team[, c(1:24, 33:44, 25:32)]p_stats <- p_stats %>%
group_by(player_name) %>%
arrange(player_name, desc(G)) %>%
distinct(player_name, .keep_all = TRUE) # Will remove any duplicate players based on the amount of games played in that row. The highest amount of games played for the duplicated remains. Team variable 'TOT' stands for Two or More Teams so that is the row we want to keep.
p_stats <- p_stats %>%
filter(G >= 20, MP >= 100) # Filter out and remove players that haven't played enough and who's data could influence decisions unnecessarily. p_stats <- p_stats %>%
group_by(Pos) %>%
mutate(PTSpm = PTS / MP,
FTpm = FT / MP,
BLKpm = BLK / MP,
ASTpm = AST / MP,
STLpm = STL / MP,
TOVpm = TOV / MP,
x3Ppm = x3P / MP,
PPG = PTS / G,
APG = AST / G,
RPG = TRB / G) # Creates new variables at the end of our data frame
p_stats <- arrange(p_stats, Pos) # Arranges the data frame in order of Position
p_stats <- p_stats %>%
mutate_if(is.numeric, round, digits = 3)## `mutate_if()` ignored the following grouping variables:
## Column `Pos`
kable(cbind(p_stats)) %>%
kable_styling("bordered") %>%
scroll_box(width = "100%", height = "200px") # Formatting the table with a scroll box so that it doesn't take up a considerable amount of the page. | player_name | Pos | Age | Tm | Salary | G | GS | MP | FG | FGA | FGp | x3P | x3PA | x3Pp | x2P | x2PA | x2Pp | eFGp | FT | FTA | FTp | ORB | DRB | TRB | AST | STL | BLK | TOV | PF | PTS | PTSpm | FTpm | BLKpm | ASTpm | STLpm | TOVpm | x3Ppm | PPG | APG | RPG |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Al Horford | C | 32 | BOS | 28928710 | 68 | 68 | 1973 | 387 | 723 | 0.535 | 73 | 203 | 0.360 | 314 | 520 | 0.604 | 0.586 | 78 | 95 | 0.821 | 120 | 338 | 458 | 283 | 59 | 86 | 102 | 126 | 925 | 0.469 | 0.040 | 0.044 | 0.143 | 0.030 | 0.052 | 0.037 | 13.603 | 4.162 | 6.735 |
| Alex Len | C | 25 | ATL | 4350000 | 77 | 31 | 1544 | 320 | 648 | 0.494 | 74 | 204 | 0.363 | 246 | 444 | 0.554 | 0.551 | 140 | 216 | 0.648 | 158 | 266 | 424 | 86 | 27 | 69 | 97 | 200 | 854 | 0.553 | 0.091 | 0.045 | 0.056 | 0.017 | 0.063 | 0.048 | 11.091 | 1.117 | 5.506 |
| Amir Johnson | C | 31 | PHI | 2393887 | 51 | 6 | 529 | 79 | 157 | 0.503 | 12 | 40 | 0.300 | 67 | 117 | 0.573 | 0.541 | 31 | 41 | 0.756 | 47 | 100 | 147 | 60 | 16 | 13 | 45 | 99 | 201 | 0.380 | 0.059 | 0.025 | 0.113 | 0.030 | 0.085 | 0.023 | 3.941 | 1.176 | 2.882 |
| Andre Drummond | C | 25 | DET | 25434262 | 79 | 79 | 2647 | 561 | 1052 | 0.533 | 5 | 38 | 0.132 | 556 | 1014 | 0.548 | 0.536 | 243 | 412 | 0.590 | 423 | 809 | 1232 | 112 | 136 | 138 | 175 | 272 | 1370 | 0.518 | 0.092 | 0.052 | 0.042 | 0.051 | 0.066 | 0.002 | 17.342 | 1.418 | 15.595 |
| Anthony Davis | C | 25 | NOP | 25434263 | 56 | 56 | 1850 | 530 | 1026 | 0.517 | 48 | 145 | 0.331 | 482 | 881 | 0.547 | 0.540 | 344 | 433 | 0.794 | 174 | 498 | 672 | 218 | 88 | 135 | 112 | 132 | 1452 | 0.785 | 0.186 | 0.073 | 0.118 | 0.048 | 0.061 | 0.026 | 25.929 | 3.893 | 12.000 |
| Aron Baynes | C | 32 | BOS | 5193600 | 51 | 18 | 821 | 105 | 223 | 0.471 | 21 | 61 | 0.344 | 84 | 162 | 0.519 | 0.518 | 53 | 62 | 0.855 | 88 | 152 | 240 | 57 | 12 | 34 | 40 | 125 | 284 | 0.346 | 0.065 | 0.041 | 0.069 | 0.015 | 0.049 | 0.026 | 5.569 | 1.118 | 4.706 |
| Bam Adebayo | C | 21 | MIA | 2955840 | 82 | 28 | 1913 | 280 | 486 | 0.576 | 3 | 15 | 0.200 | 277 | 471 | 0.588 | 0.579 | 166 | 226 | 0.735 | 165 | 432 | 597 | 184 | 71 | 65 | 121 | 203 | 729 | 0.381 | 0.087 | 0.034 | 0.096 | 0.037 | 0.063 | 0.002 | 8.890 | 2.244 | 7.280 |
| Bismack Biyombo | C | 26 | CHO | 17000000 | 54 | 32 | 783 | 89 | 156 | 0.571 | 0 | 0 | 0.000 | 89 | 156 | 0.571 | 0.571 | 58 | 91 | 0.637 | 81 | 166 | 247 | 33 | 11 | 41 | 34 | 103 | 236 | 0.301 | 0.074 | 0.052 | 0.042 | 0.014 | 0.043 | 0.000 | 4.370 | 0.611 | 4.574 |
| Brook Lopez | C | 30 | MIL | 3382000 | 81 | 81 | 2322 | 355 | 786 | 0.452 | 187 | 512 | 0.365 | 168 | 274 | 0.613 | 0.571 | 112 | 133 | 0.842 | 33 | 363 | 396 | 98 | 51 | 179 | 82 | 189 | 1009 | 0.435 | 0.048 | 0.077 | 0.042 | 0.022 | 0.035 | 0.081 | 12.457 | 1.210 | 4.889 |
| Channing Frye | C | 35 | CLE | 2393887 | 36 | 6 | 341 | 43 | 117 | 0.368 | 32 | 79 | 0.405 | 11 | 38 | 0.289 | 0.504 | 11 | 14 | 0.786 | 4 | 48 | 52 | 20 | 6 | 5 | 13 | 44 | 129 | 0.378 | 0.032 | 0.015 | 0.059 | 0.018 | 0.038 | 0.094 | 3.583 | 0.556 | 1.444 |
| Clint Capela | C | 24 | HOU | 15793104 | 67 | 67 | 2249 | 474 | 732 | 0.648 | 0 | 0 | 0.000 | 474 | 732 | 0.648 | 0.648 | 166 | 261 | 0.636 | 298 | 550 | 848 | 96 | 44 | 102 | 94 | 168 | 1114 | 0.495 | 0.074 | 0.045 | 0.043 | 0.020 | 0.042 | 0.000 | 16.627 | 1.433 | 12.657 |
| Cody Zeller | C | 26 | CHO | 13528090 | 49 | 47 | 1243 | 190 | 345 | 0.551 | 6 | 22 | 0.273 | 184 | 323 | 0.570 | 0.559 | 111 | 141 | 0.787 | 110 | 223 | 333 | 102 | 38 | 41 | 62 | 164 | 497 | 0.400 | 0.089 | 0.033 | 0.082 | 0.031 | 0.050 | 0.005 | 10.143 | 2.082 | 6.796 |
| Damian Jones | C | 23 | GSW | 1544951 | 24 | 22 | 410 | 53 | 74 | 0.716 | 0 | 0 | 0.000 | 53 | 74 | 0.716 | 0.716 | 24 | 37 | 0.649 | 31 | 44 | 75 | 28 | 12 | 25 | 16 | 63 | 130 | 0.317 | 0.059 | 0.061 | 0.068 | 0.029 | 0.039 | 0.000 | 5.417 | 1.167 | 3.125 |
| Daniel Theis | C | 26 | BOS | 1378242 | 66 | 2 | 908 | 146 | 266 | 0.549 | 26 | 67 | 0.388 | 120 | 199 | 0.603 | 0.598 | 56 | 76 | 0.737 | 87 | 138 | 225 | 68 | 21 | 42 | 33 | 161 | 374 | 0.412 | 0.062 | 0.046 | 0.075 | 0.023 | 0.036 | 0.029 | 5.667 | 1.030 | 3.409 |
| Deandre Ayton | C | 20 | PHO | 8175840 | 71 | 70 | 2183 | 509 | 870 | 0.585 | 0 | 4 | 0.000 | 509 | 866 | 0.588 | 0.585 | 141 | 189 | 0.746 | 223 | 506 | 729 | 125 | 61 | 67 | 126 | 209 | 1159 | 0.531 | 0.065 | 0.031 | 0.057 | 0.028 | 0.058 | 0.000 | 16.324 | 1.761 | 10.268 |
| DeAndre Jordan | C | 30 | TOT | 22897200 | 69 | 69 | 2047 | 286 | 446 | 0.641 | 0 | 0 | 0.000 | 286 | 446 | 0.641 | 0.641 | 186 | 264 | 0.705 | 225 | 677 | 902 | 156 | 42 | 73 | 153 | 167 | 758 | 0.370 | 0.091 | 0.036 | 0.076 | 0.021 | 0.075 | 0.000 | 10.986 | 2.261 | 13.072 |
| DeMarcus Cousins | C | 28 | GSW | 5337000 | 30 | 30 | 771 | 178 | 371 | 0.480 | 26 | 95 | 0.274 | 152 | 276 | 0.551 | 0.515 | 106 | 144 | 0.736 | 43 | 204 | 247 | 107 | 40 | 44 | 72 | 109 | 488 | 0.633 | 0.137 | 0.057 | 0.139 | 0.052 | 0.093 | 0.034 | 16.267 | 3.567 | 8.233 |
| Derrick Favors | C | 27 | UTA | 16900000 | 76 | 70 | 1766 | 363 | 619 | 0.586 | 17 | 78 | 0.218 | 346 | 541 | 0.640 | 0.600 | 154 | 228 | 0.675 | 207 | 353 | 560 | 89 | 56 | 106 | 84 | 163 | 897 | 0.508 | 0.087 | 0.060 | 0.050 | 0.032 | 0.048 | 0.010 | 11.803 | 1.171 | 7.368 |
| Dewayne Dedmon | C | 29 | ATL | 6300000 | 64 | 52 | 1609 | 259 | 526 | 0.492 | 83 | 217 | 0.382 | 176 | 309 | 0.570 | 0.571 | 92 | 113 | 0.814 | 105 | 375 | 480 | 90 | 69 | 71 | 84 | 214 | 693 | 0.431 | 0.057 | 0.044 | 0.056 | 0.043 | 0.052 | 0.052 | 10.828 | 1.406 | 7.500 |
| Domantas Sabonis | C | 22 | IND | 2659800 | 74 | 5 | 1838 | 413 | 700 | 0.590 | 9 | 17 | 0.529 | 404 | 683 | 0.592 | 0.596 | 208 | 291 | 0.715 | 186 | 504 | 690 | 212 | 48 | 30 | 160 | 239 | 1043 | 0.567 | 0.113 | 0.016 | 0.115 | 0.026 | 0.087 | 0.005 | 14.095 | 2.865 | 9.324 |
| Dwight Powell | C | 27 | DAL | 9631250 | 77 | 22 | 1662 | 290 | 486 | 0.597 | 39 | 127 | 0.307 | 251 | 359 | 0.699 | 0.637 | 196 | 254 | 0.772 | 140 | 271 | 411 | 112 | 44 | 50 | 67 | 201 | 815 | 0.490 | 0.118 | 0.030 | 0.067 | 0.026 | 0.040 | 0.023 | 10.584 | 1.455 | 5.338 |
| Ed Davis | C | 29 | BRK | 4449000 | 81 | 1 | 1446 | 186 | 302 | 0.616 | 0 | 2 | 0.000 | 186 | 300 | 0.620 | 0.616 | 100 | 162 | 0.617 | 216 | 478 | 694 | 61 | 35 | 33 | 64 | 226 | 472 | 0.326 | 0.069 | 0.023 | 0.042 | 0.024 | 0.044 | 0.000 | 5.827 | 0.753 | 8.568 |
| Ekpe Udoh | C | 31 | UTA | 3360000 | 51 | 1 | 320 | 50 | 72 | 0.694 | 0 | 0 | 0.000 | 50 | 72 | 0.694 | 0.694 | 19 | 30 | 0.633 | 27 | 63 | 90 | 28 | 10 | 31 | 13 | 36 | 119 | 0.372 | 0.059 | 0.097 | 0.088 | 0.031 | 0.041 | 0.000 | 2.333 | 0.549 | 1.765 |
| Enes Kanter | C | 26 | TOT | 19264603 | 67 | 31 | 1640 | 375 | 683 | 0.549 | 10 | 34 | 0.294 | 365 | 649 | 0.562 | 0.556 | 155 | 197 | 0.787 | 257 | 402 | 659 | 116 | 32 | 26 | 118 | 167 | 915 | 0.558 | 0.095 | 0.016 | 0.071 | 0.020 | 0.072 | 0.006 | 13.657 | 1.731 | 9.836 |
| Frank Kaminsky | C | 25 | CHO | 3627842 | 47 | 0 | 755 | 138 | 298 | 0.463 | 50 | 139 | 0.360 | 88 | 159 | 0.553 | 0.547 | 79 | 107 | 0.738 | 39 | 124 | 163 | 63 | 12 | 12 | 41 | 68 | 405 | 0.536 | 0.105 | 0.016 | 0.083 | 0.016 | 0.054 | 0.066 | 8.617 | 1.340 | 3.468 |
| Gorgui Dieng | C | 29 | MIN | 15170787 | 76 | 2 | 1031 | 189 | 377 | 0.501 | 19 | 56 | 0.339 | 170 | 321 | 0.530 | 0.527 | 88 | 106 | 0.830 | 81 | 230 | 311 | 72 | 48 | 41 | 57 | 134 | 485 | 0.470 | 0.085 | 0.040 | 0.070 | 0.047 | 0.055 | 0.018 | 6.382 | 0.947 | 4.092 |
| Greg Monroe | C | 28 | TOT | 2410167 | 43 | 2 | 480 | 92 | 189 | 0.487 | 1 | 5 | 0.200 | 91 | 184 | 0.495 | 0.489 | 45 | 72 | 0.625 | 67 | 105 | 172 | 24 | 14 | 8 | 32 | 66 | 230 | 0.479 | 0.094 | 0.017 | 0.050 | 0.029 | 0.067 | 0.002 | 5.349 | 0.558 | 4.000 |
| Hassan Whiteside | C | 29 | MIA | 24434262 | 72 | 53 | 1674 | 388 | 680 | 0.571 | 2 | 16 | 0.125 | 386 | 664 | 0.581 | 0.572 | 109 | 243 | 0.449 | 257 | 560 | 817 | 56 | 46 | 136 | 97 | 192 | 887 | 0.530 | 0.065 | 0.081 | 0.033 | 0.027 | 0.058 | 0.001 | 12.319 | 0.778 | 11.347 |
| Ian Mahinmi | C | 32 | WAS | 16000000 | 34 | 6 | 498 | 47 | 104 | 0.452 | 3 | 16 | 0.188 | 44 | 88 | 0.500 | 0.466 | 42 | 61 | 0.689 | 48 | 80 | 128 | 25 | 25 | 16 | 21 | 84 | 139 | 0.279 | 0.084 | 0.032 | 0.050 | 0.050 | 0.042 | 0.006 | 4.088 | 0.735 | 3.765 |
| Ivica Zubac | C | 21 | TOT | 1544951 | 59 | 37 | 1040 | 212 | 379 | 0.559 | 0 | 0 | 0.000 | 212 | 379 | 0.559 | 0.559 | 101 | 126 | 0.802 | 115 | 247 | 362 | 63 | 14 | 51 | 70 | 137 | 525 | 0.505 | 0.097 | 0.049 | 0.061 | 0.013 | 0.067 | 0.000 | 8.898 | 1.068 | 6.136 |
| Jahlil Okafor | C | 23 | NOP | 1567007 | 59 | 24 | 935 | 212 | 362 | 0.586 | 1 | 5 | 0.200 | 211 | 357 | 0.591 | 0.587 | 59 | 89 | 0.663 | 82 | 196 | 278 | 40 | 15 | 40 | 52 | 96 | 484 | 0.518 | 0.063 | 0.043 | 0.043 | 0.016 | 0.056 | 0.001 | 8.203 | 0.678 | 4.712 |
| Jarrett Allen | C | 20 | BRK | 2034120 | 80 | 80 | 2096 | 335 | 568 | 0.590 | 6 | 45 | 0.133 | 329 | 523 | 0.629 | 0.595 | 197 | 278 | 0.709 | 191 | 481 | 672 | 110 | 43 | 120 | 103 | 184 | 873 | 0.417 | 0.094 | 0.057 | 0.052 | 0.021 | 0.049 | 0.003 | 10.912 | 1.375 | 8.400 |
| JaVale McGee | C | 31 | LAL | 2393887 | 75 | 62 | 1671 | 400 | 641 | 0.624 | 1 | 12 | 0.083 | 399 | 629 | 0.634 | 0.625 | 96 | 152 | 0.632 | 195 | 371 | 566 | 52 | 47 | 148 | 108 | 208 | 897 | 0.537 | 0.057 | 0.089 | 0.031 | 0.028 | 0.065 | 0.001 | 11.960 | 0.693 | 7.547 |
| Joakim Noah | C | 33 | MEM | 20261172 | 42 | 1 | 693 | 110 | 213 | 0.516 | 0 | 1 | 0.000 | 110 | 212 | 0.519 | 0.516 | 78 | 109 | 0.716 | 58 | 180 | 238 | 89 | 20 | 31 | 50 | 96 | 298 | 0.430 | 0.113 | 0.045 | 0.128 | 0.029 | 0.072 | 0.000 | 7.095 | 2.119 | 5.667 |
| Joel Embiid | C | 24 | PHI | 25467250 | 64 | 64 | 2154 | 580 | 1199 | 0.484 | 79 | 263 | 0.300 | 501 | 936 | 0.535 | 0.517 | 522 | 649 | 0.804 | 160 | 711 | 871 | 234 | 46 | 122 | 226 | 211 | 1761 | 0.818 | 0.242 | 0.057 | 0.109 | 0.021 | 0.105 | 0.037 | 27.516 | 3.656 | 13.609 |
| Johnathan Williams | C | 23 | LAL | 127250 | 24 | 0 | 372 | 65 | 110 | 0.591 | 0 | 2 | 0.000 | 65 | 108 | 0.602 | 0.591 | 27 | 48 | 0.563 | 48 | 51 | 99 | 13 | 8 | 7 | 16 | 62 | 157 | 0.422 | 0.073 | 0.019 | 0.035 | 0.022 | 0.043 | 0.000 | 6.542 | 0.542 | 4.125 |
| Jordan Bell | C | 24 | GSW | 1378242 | 68 | 3 | 788 | 99 | 192 | 0.516 | 0 | 2 | 0.000 | 99 | 190 | 0.521 | 0.516 | 25 | 41 | 0.610 | 55 | 129 | 184 | 76 | 20 | 51 | 42 | 80 | 223 | 0.283 | 0.032 | 0.065 | 0.096 | 0.025 | 0.053 | 0.000 | 3.279 | 1.118 | 2.706 |
| Karl-Anthony Towns | C | 23 | MIN | 7839435 | 77 | 77 | 2545 | 681 | 1314 | 0.518 | 142 | 355 | 0.400 | 539 | 959 | 0.562 | 0.572 | 376 | 450 | 0.836 | 263 | 691 | 954 | 259 | 67 | 125 | 240 | 292 | 1880 | 0.739 | 0.148 | 0.049 | 0.102 | 0.026 | 0.094 | 0.056 | 24.416 | 3.364 | 12.390 |
| Kenneth Faried | C | 29 | TOT | 14242782 | 37 | 13 | 728 | 156 | 265 | 0.589 | 8 | 25 | 0.320 | 148 | 240 | 0.617 | 0.604 | 64 | 99 | 0.646 | 97 | 153 | 250 | 20 | 17 | 23 | 33 | 82 | 384 | 0.527 | 0.088 | 0.032 | 0.027 | 0.023 | 0.045 | 0.011 | 10.378 | 0.541 | 6.757 |
| Kevon Looney | C | 22 | GSW | 1567007 | 80 | 24 | 1481 | 217 | 347 | 0.625 | 1 | 10 | 0.100 | 216 | 337 | 0.641 | 0.627 | 65 | 105 | 0.619 | 194 | 223 | 417 | 123 | 46 | 53 | 51 | 211 | 500 | 0.338 | 0.044 | 0.036 | 0.083 | 0.031 | 0.034 | 0.001 | 6.250 | 1.538 | 5.213 |
| Khem Birch | C | 26 | ORL | 1378242 | 50 | 1 | 643 | 91 | 151 | 0.603 | 0 | 1 | 0.000 | 91 | 150 | 0.607 | 0.603 | 58 | 83 | 0.699 | 79 | 111 | 190 | 38 | 18 | 29 | 20 | 72 | 240 | 0.373 | 0.090 | 0.045 | 0.059 | 0.028 | 0.031 | 0.000 | 4.800 | 0.760 | 3.800 |
| Kosta Koufos | C | 29 | SAC | 8739500 | 42 | 1 | 502 | 73 | 153 | 0.477 | 0 | 0 | 0.000 | 73 | 153 | 0.477 | 0.477 | 10 | 24 | 0.417 | 52 | 125 | 177 | 36 | 15 | 18 | 27 | 68 | 156 | 0.311 | 0.020 | 0.036 | 0.072 | 0.030 | 0.054 | 0.000 | 3.714 | 0.857 | 4.214 |
| Kyle O’Quinn | C | 28 | IND | 4449000 | 45 | 3 | 371 | 69 | 136 | 0.507 | 1 | 12 | 0.083 | 68 | 124 | 0.548 | 0.511 | 17 | 21 | 0.810 | 29 | 90 | 119 | 56 | 9 | 25 | 31 | 68 | 156 | 0.420 | 0.046 | 0.067 | 0.151 | 0.024 | 0.084 | 0.003 | 3.467 | 1.244 | 2.644 |
| LaMarcus Aldridge | C | 33 | SAS | 22347015 | 81 | 81 | 2687 | 684 | 1319 | 0.519 | 10 | 42 | 0.238 | 674 | 1277 | 0.528 | 0.522 | 349 | 412 | 0.847 | 251 | 493 | 744 | 194 | 43 | 107 | 144 | 179 | 1727 | 0.643 | 0.130 | 0.040 | 0.072 | 0.016 | 0.054 | 0.004 | 21.321 | 2.395 | 9.185 |
| Larry Nance | C | 26 | CLE | 2272390 | 67 | 30 | 1795 | 249 | 479 | 0.520 | 33 | 98 | 0.337 | 216 | 381 | 0.567 | 0.554 | 96 | 134 | 0.716 | 168 | 384 | 552 | 214 | 100 | 40 | 97 | 192 | 627 | 0.349 | 0.053 | 0.022 | 0.119 | 0.056 | 0.054 | 0.018 | 9.358 | 3.194 | 8.239 |
| Marc Gasol | C | 34 | TOT | 24119025 | 79 | 72 | 2436 | 390 | 870 | 0.448 | 99 | 273 | 0.363 | 291 | 597 | 0.487 | 0.505 | 192 | 253 | 0.759 | 80 | 547 | 627 | 349 | 84 | 86 | 155 | 217 | 1071 | 0.440 | 0.079 | 0.035 | 0.143 | 0.034 | 0.064 | 0.041 | 13.557 | 4.418 | 7.937 |
| Marcin Gortat | C | 34 | LAC | 13565218 | 47 | 43 | 751 | 99 | 186 | 0.532 | 0 | 0 | 0.000 | 99 | 186 | 0.532 | 0.532 | 35 | 48 | 0.729 | 67 | 194 | 261 | 65 | 6 | 24 | 50 | 92 | 233 | 0.310 | 0.047 | 0.032 | 0.087 | 0.008 | 0.067 | 0.000 | 4.957 | 1.383 | 5.553 |
| Mason Plumlee | C | 28 | DEN | 12917808 | 82 | 17 | 1731 | 262 | 442 | 0.593 | 2 | 10 | 0.200 | 260 | 432 | 0.602 | 0.595 | 111 | 198 | 0.561 | 165 | 359 | 524 | 243 | 66 | 76 | 126 | 252 | 637 | 0.368 | 0.064 | 0.044 | 0.140 | 0.038 | 0.073 | 0.001 | 7.768 | 2.963 | 6.390 |
| Meyers Leonard | C | 26 | POR | 10595506 | 61 | 2 | 878 | 132 | 242 | 0.545 | 50 | 111 | 0.450 | 82 | 131 | 0.626 | 0.649 | 43 | 51 | 0.843 | 49 | 184 | 233 | 75 | 13 | 9 | 43 | 105 | 357 | 0.407 | 0.049 | 0.010 | 0.085 | 0.015 | 0.049 | 0.057 | 5.852 | 1.230 | 3.820 |
| Mitchell Robinson | C | 20 | NYK | 1485440 | 66 | 19 | 1360 | 202 | 291 | 0.694 | 0 | 0 | 0.000 | 202 | 291 | 0.694 | 0.694 | 81 | 135 | 0.600 | 177 | 246 | 423 | 37 | 52 | 161 | 35 | 217 | 485 | 0.357 | 0.060 | 0.118 | 0.027 | 0.038 | 0.026 | 0.000 | 7.348 | 0.561 | 6.409 |
| Mo Bamba | C | 20 | ORL | 4871280 | 47 | 1 | 766 | 117 | 243 | 0.481 | 21 | 70 | 0.300 | 96 | 173 | 0.555 | 0.525 | 37 | 63 | 0.587 | 64 | 169 | 233 | 39 | 13 | 64 | 43 | 102 | 292 | 0.381 | 0.048 | 0.084 | 0.051 | 0.017 | 0.056 | 0.027 | 6.213 | 0.830 | 4.957 |
| Montrezl Harrell | C | 25 | LAC | 6000000 | 82 | 5 | 2158 | 546 | 888 | 0.615 | 3 | 17 | 0.176 | 543 | 871 | 0.623 | 0.617 | 266 | 414 | 0.643 | 184 | 351 | 535 | 162 | 71 | 110 | 132 | 255 | 1361 | 0.631 | 0.123 | 0.051 | 0.075 | 0.033 | 0.061 | 0.001 | 16.598 | 1.976 | 6.524 |
| Moritz Wagner | C | 21 | LAL | 1764240 | 43 | 5 | 446 | 71 | 171 | 0.415 | 22 | 77 | 0.286 | 49 | 94 | 0.521 | 0.480 | 43 | 53 | 0.811 | 17 | 68 | 85 | 24 | 11 | 13 | 39 | 57 | 207 | 0.464 | 0.096 | 0.029 | 0.054 | 0.025 | 0.087 | 0.049 | 4.814 | 0.558 | 1.977 |
| Myles Turner | C | 22 | IND | 3294994 | 74 | 74 | 2119 | 380 | 780 | 0.487 | 76 | 196 | 0.388 | 304 | 584 | 0.521 | 0.536 | 148 | 201 | 0.736 | 101 | 430 | 531 | 115 | 60 | 199 | 100 | 195 | 984 | 0.464 | 0.070 | 0.094 | 0.054 | 0.028 | 0.047 | 0.036 | 13.297 | 1.554 | 7.176 |
| Nerlens Noel | C | 24 | OKC | 1757429 | 77 | 2 | 1055 | 162 | 276 | 0.587 | 0 | 0 | 0.000 | 162 | 276 | 0.587 | 0.587 | 54 | 79 | 0.684 | 127 | 198 | 325 | 45 | 66 | 96 | 48 | 166 | 378 | 0.358 | 0.051 | 0.091 | 0.043 | 0.063 | 0.045 | 0.000 | 4.909 | 0.584 | 4.221 |
| Pau Gasol | C | 38 | TOT | 17133285 | 30 | 6 | 360 | 42 | 94 | 0.447 | 6 | 13 | 0.462 | 36 | 81 | 0.444 | 0.479 | 28 | 40 | 0.700 | 22 | 115 | 137 | 52 | 5 | 15 | 16 | 29 | 118 | 0.328 | 0.078 | 0.042 | 0.144 | 0.014 | 0.044 | 0.017 | 3.933 | 1.733 | 4.567 |
| Richaun Holmes | C | 25 | PHO | 1600520 | 70 | 4 | 1184 | 222 | 365 | 0.608 | 0 | 0 | 0.000 | 222 | 365 | 0.608 | 0.608 | 128 | 175 | 0.731 | 115 | 216 | 331 | 60 | 42 | 79 | 52 | 194 | 572 | 0.483 | 0.108 | 0.067 | 0.051 | 0.035 | 0.044 | 0.000 | 8.171 | 0.857 | 4.729 |
| Robert Williams | C | 21 | BOS | 1656600 | 32 | 2 | 283 | 36 | 51 | 0.706 | 0 | 0 | 0.000 | 36 | 51 | 0.706 | 0.706 | 9 | 15 | 0.600 | 27 | 54 | 81 | 7 | 9 | 40 | 10 | 36 | 81 | 0.286 | 0.032 | 0.141 | 0.025 | 0.032 | 0.035 | 0.000 | 2.531 | 0.219 | 2.531 |
| Robin Lopez | C | 30 | CHI | 14357750 | 74 | 36 | 1606 | 304 | 535 | 0.568 | 7 | 31 | 0.226 | 297 | 504 | 0.589 | 0.575 | 89 | 123 | 0.724 | 140 | 146 | 286 | 89 | 11 | 78 | 96 | 124 | 704 | 0.438 | 0.055 | 0.049 | 0.055 | 0.007 | 0.060 | 0.004 | 9.514 | 1.203 | 3.865 |
| Rudy Gobert | C | 26 | UTA | 23491573 | 81 | 80 | 2577 | 476 | 712 | 0.669 | 0 | 0 | 0.000 | 476 | 712 | 0.669 | 0.669 | 332 | 522 | 0.636 | 309 | 732 | 1041 | 161 | 66 | 187 | 130 | 231 | 1284 | 0.498 | 0.129 | 0.073 | 0.062 | 0.026 | 0.050 | 0.000 | 15.852 | 1.988 | 12.852 |
| Salah Mejri | C | 32 | DAL | 2098196 | 36 | 4 | 399 | 55 | 112 | 0.491 | 11 | 34 | 0.324 | 44 | 78 | 0.564 | 0.540 | 20 | 32 | 0.625 | 36 | 95 | 131 | 35 | 10 | 26 | 21 | 55 | 141 | 0.353 | 0.050 | 0.065 | 0.088 | 0.025 | 0.053 | 0.028 | 3.917 | 0.972 | 3.639 |
| Serge Ibaka | C | 29 | TOR | 21666667 | 74 | 51 | 2010 | 464 | 877 | 0.529 | 49 | 169 | 0.290 | 415 | 708 | 0.586 | 0.557 | 135 | 177 | 0.763 | 156 | 445 | 601 | 99 | 29 | 103 | 114 | 211 | 1112 | 0.553 | 0.067 | 0.051 | 0.049 | 0.014 | 0.057 | 0.024 | 15.027 | 1.338 | 8.122 |
| Steven Adams | C | 25 | OKC | 24157304 | 80 | 80 | 2669 | 481 | 809 | 0.595 | 0 | 2 | 0.000 | 481 | 807 | 0.596 | 0.595 | 146 | 292 | 0.500 | 391 | 369 | 760 | 124 | 117 | 76 | 135 | 204 | 1108 | 0.415 | 0.055 | 0.028 | 0.046 | 0.044 | 0.051 | 0.000 | 13.850 | 1.550 | 9.500 |
| Thomas Bryant | C | 21 | WAS | 1378242 | 72 | 53 | 1496 | 309 | 502 | 0.616 | 33 | 99 | 0.333 | 276 | 403 | 0.685 | 0.648 | 107 | 137 | 0.781 | 113 | 341 | 454 | 92 | 25 | 67 | 60 | 126 | 758 | 0.507 | 0.072 | 0.045 | 0.061 | 0.017 | 0.040 | 0.022 | 10.528 | 1.278 | 6.306 |
| Tristan Thompson | C | 27 | CLE | 17469565 | 43 | 40 | 1198 | 201 | 380 | 0.529 | 0 | 0 | 0.000 | 201 | 380 | 0.529 | 0.529 | 68 | 106 | 0.642 | 173 | 265 | 438 | 86 | 28 | 16 | 59 | 89 | 470 | 0.392 | 0.057 | 0.013 | 0.072 | 0.023 | 0.049 | 0.000 | 10.930 | 2.000 | 10.186 |
| Tyson Chandler | C | 36 | TOT | 13585000 | 55 | 6 | 875 | 61 | 99 | 0.616 | 0 | 1 | 0.000 | 61 | 98 | 0.622 | 0.616 | 51 | 87 | 0.586 | 92 | 215 | 307 | 37 | 21 | 23 | 42 | 110 | 173 | 0.198 | 0.058 | 0.026 | 0.042 | 0.024 | 0.048 | 0.000 | 3.145 | 0.673 | 5.582 |
| Wendell Carter | C | 19 | CHI | 4446840 | 44 | 44 | 1110 | 180 | 371 | 0.485 | 6 | 32 | 0.188 | 174 | 339 | 0.513 | 0.493 | 89 | 112 | 0.795 | 87 | 220 | 307 | 78 | 26 | 58 | 65 | 152 | 455 | 0.410 | 0.080 | 0.052 | 0.070 | 0.023 | 0.059 | 0.005 | 10.341 | 1.773 | 6.977 |
| Willie Cauley-Stein | C | 25 | SAC | 4696874 | 81 | 81 | 2213 | 412 | 741 | 0.556 | 1 | 2 | 0.500 | 411 | 739 | 0.556 | 0.557 | 140 | 254 | 0.551 | 181 | 497 | 678 | 194 | 96 | 51 | 84 | 227 | 965 | 0.436 | 0.063 | 0.023 | 0.088 | 0.043 | 0.038 | 0.000 | 11.914 | 2.395 | 8.370 |
| Zach Collins | C | 21 | POR | 3628920 | 77 | 0 | 1356 | 189 | 400 | 0.473 | 40 | 121 | 0.331 | 149 | 279 | 0.534 | 0.523 | 94 | 126 | 0.746 | 109 | 215 | 324 | 71 | 25 | 66 | 77 | 174 | 512 | 0.378 | 0.069 | 0.049 | 0.052 | 0.018 | 0.057 | 0.029 | 6.649 | 0.922 | 4.208 |
| Zaza Pachulia | C | 34 | DET | 2393887 | 68 | 3 | 878 | 85 | 193 | 0.440 | 0 | 4 | 0.000 | 85 | 189 | 0.450 | 0.440 | 97 | 124 | 0.782 | 99 | 166 | 265 | 91 | 31 | 17 | 57 | 151 | 267 | 0.304 | 0.110 | 0.019 | 0.104 | 0.035 | 0.065 | 0.000 | 3.926 | 1.338 | 3.897 |
| Thon Maker | C-PF | 21 | TOT | 2799720 | 64 | 5 | 972 | 109 | 268 | 0.407 | 49 | 153 | 0.320 | 60 | 115 | 0.522 | 0.498 | 56 | 84 | 0.667 | 41 | 161 | 202 | 45 | 21 | 51 | 33 | 105 | 323 | 0.332 | 0.058 | 0.052 | 0.046 | 0.022 | 0.034 | 0.050 | 5.047 | 0.703 | 3.156 |
| Aaron Gordon | PF | 23 | ORL | 21590909 | 78 | 78 | 2633 | 470 | 1046 | 0.449 | 121 | 347 | 0.349 | 349 | 699 | 0.499 | 0.507 | 185 | 253 | 0.731 | 129 | 445 | 574 | 289 | 57 | 56 | 162 | 172 | 1246 | 0.473 | 0.070 | 0.021 | 0.110 | 0.022 | 0.062 | 0.046 | 15.974 | 3.705 | 7.359 |
| Al-Farouq Aminu | PF | 28 | POR | 6957105 | 81 | 81 | 2292 | 257 | 593 | 0.433 | 96 | 280 | 0.343 | 161 | 313 | 0.514 | 0.514 | 150 | 173 | 0.867 | 112 | 498 | 610 | 104 | 68 | 33 | 72 | 143 | 760 | 0.332 | 0.065 | 0.014 | 0.045 | 0.030 | 0.031 | 0.042 | 9.383 | 1.284 | 7.531 |
| Alex Poythress | PF | 25 | ATL | 77250 | 21 | 1 | 305 | 40 | 81 | 0.494 | 9 | 23 | 0.391 | 31 | 58 | 0.534 | 0.549 | 18 | 29 | 0.621 | 29 | 47 | 76 | 17 | 4 | 10 | 13 | 47 | 107 | 0.351 | 0.059 | 0.033 | 0.056 | 0.013 | 0.043 | 0.030 | 5.095 | 0.810 | 3.619 |
| Anthony Tolliver | PF | 33 | MIN | 5750000 | 65 | 0 | 1079 | 99 | 259 | 0.382 | 81 | 215 | 0.377 | 18 | 44 | 0.409 | 0.539 | 47 | 60 | 0.783 | 15 | 162 | 177 | 46 | 17 | 21 | 36 | 91 | 326 | 0.302 | 0.044 | 0.019 | 0.043 | 0.016 | 0.033 | 0.075 | 5.015 | 0.708 | 2.723 |
| Blake Griffin | PF | 29 | DET | 31873932 | 75 | 75 | 2622 | 619 | 1341 | 0.462 | 189 | 522 | 0.362 | 430 | 819 | 0.525 | 0.532 | 414 | 550 | 0.753 | 100 | 465 | 565 | 402 | 52 | 28 | 253 | 199 | 1841 | 0.702 | 0.158 | 0.011 | 0.153 | 0.020 | 0.096 | 0.072 | 24.547 | 5.360 | 7.533 |
| Bobby Portis | PF | 23 | TOT | 2494346 | 50 | 28 | 1299 | 279 | 628 | 0.444 | 75 | 191 | 0.393 | 204 | 437 | 0.467 | 0.504 | 77 | 97 | 0.794 | 109 | 294 | 403 | 72 | 35 | 20 | 74 | 145 | 710 | 0.547 | 0.059 | 0.015 | 0.055 | 0.027 | 0.057 | 0.058 | 14.200 | 1.440 | 8.060 |
| Caleb Swanigan | PF | 21 | TOT | 1740000 | 21 | 0 | 178 | 18 | 53 | 0.340 | 1 | 7 | 0.143 | 17 | 46 | 0.370 | 0.349 | 6 | 9 | 0.667 | 17 | 47 | 64 | 11 | 6 | 1 | 18 | 28 | 43 | 0.242 | 0.034 | 0.006 | 0.062 | 0.034 | 0.101 | 0.006 | 2.048 | 0.524 | 3.048 |
| Cheick Diallo | PF | 22 | NOP | 1544951 | 64 | 1 | 896 | 168 | 271 | 0.620 | 1 | 4 | 0.250 | 167 | 267 | 0.625 | 0.622 | 50 | 67 | 0.746 | 75 | 257 | 332 | 33 | 29 | 33 | 49 | 113 | 387 | 0.432 | 0.056 | 0.037 | 0.037 | 0.032 | 0.055 | 0.001 | 6.047 | 0.516 | 5.188 |
| Chimezie Metu | PF | 21 | SAS | 838464 | 29 | 0 | 145 | 19 | 58 | 0.328 | 0 | 2 | 0.000 | 19 | 56 | 0.339 | 0.328 | 13 | 17 | 0.765 | 9 | 27 | 36 | 13 | 6 | 2 | 15 | 14 | 51 | 0.352 | 0.090 | 0.014 | 0.090 | 0.041 | 0.103 | 0.000 | 1.759 | 0.448 | 1.241 |
| Chris Boucher | PF | 26 | TOR | 457418 | 28 | 0 | 163 | 34 | 76 | 0.447 | 12 | 37 | 0.324 | 22 | 39 | 0.564 | 0.526 | 13 | 15 | 0.867 | 16 | 40 | 56 | 2 | 6 | 24 | 7 | 31 | 93 | 0.571 | 0.080 | 0.147 | 0.012 | 0.037 | 0.043 | 0.074 | 3.321 | 0.071 | 2.000 |
| Christian Wood | PF | 23 | TOT | 1512601 | 21 | 2 | 251 | 61 | 117 | 0.521 | 9 | 26 | 0.346 | 52 | 91 | 0.571 | 0.560 | 41 | 56 | 0.732 | 17 | 66 | 83 | 8 | 7 | 10 | 17 | 17 | 172 | 0.685 | 0.163 | 0.040 | 0.032 | 0.028 | 0.068 | 0.036 | 8.190 | 0.381 | 3.952 |
| Dante Cunningham | PF | 31 | SAS | 2487000 | 64 | 21 | 928 | 75 | 158 | 0.475 | 30 | 65 | 0.462 | 45 | 93 | 0.484 | 0.570 | 14 | 18 | 0.778 | 48 | 140 | 188 | 50 | 27 | 13 | 22 | 71 | 194 | 0.209 | 0.015 | 0.014 | 0.054 | 0.029 | 0.024 | 0.032 | 3.031 | 0.781 | 2.938 |
| DeMarre Carroll | PF | 32 | BRK | 15400000 | 67 | 8 | 1703 | 227 | 575 | 0.395 | 106 | 310 | 0.342 | 121 | 265 | 0.457 | 0.487 | 184 | 242 | 0.760 | 68 | 281 | 349 | 85 | 31 | 10 | 73 | 114 | 744 | 0.437 | 0.108 | 0.006 | 0.050 | 0.018 | 0.043 | 0.062 | 11.104 | 1.269 | 5.209 |
| Dirk Nowitzki | PF | 40 | DAL | 5000000 | 51 | 20 | 795 | 135 | 376 | 0.359 | 64 | 205 | 0.312 | 71 | 171 | 0.415 | 0.444 | 39 | 50 | 0.780 | 5 | 153 | 158 | 35 | 9 | 18 | 18 | 76 | 373 | 0.469 | 0.049 | 0.023 | 0.044 | 0.011 | 0.023 | 0.081 | 7.314 | 0.686 | 3.098 |
| Dragan Bender | PF | 21 | PHO | 4661280 | 46 | 27 | 826 | 88 | 197 | 0.447 | 22 | 101 | 0.218 | 66 | 96 | 0.688 | 0.503 | 32 | 54 | 0.593 | 34 | 149 | 183 | 56 | 18 | 22 | 37 | 90 | 230 | 0.278 | 0.039 | 0.027 | 0.068 | 0.022 | 0.045 | 0.027 | 5.000 | 1.217 | 3.978 |
| Draymond Green | PF | 28 | GSW | 17469565 | 66 | 66 | 2065 | 188 | 422 | 0.445 | 47 | 165 | 0.285 | 141 | 257 | 0.549 | 0.501 | 63 | 91 | 0.692 | 60 | 421 | 481 | 454 | 95 | 70 | 169 | 197 | 486 | 0.235 | 0.031 | 0.034 | 0.220 | 0.046 | 0.082 | 0.023 | 7.364 | 6.879 | 7.288 |
| Drew Eubanks | PF | 21 | SAS | 77250 | 23 | 0 | 113 | 15 | 26 | 0.577 | 0 | 0 | 0.000 | 15 | 26 | 0.577 | 0.577 | 11 | 13 | 0.846 | 6 | 28 | 34 | 7 | 2 | 5 | 8 | 11 | 41 | 0.363 | 0.097 | 0.044 | 0.062 | 0.018 | 0.071 | 0.000 | 1.783 | 0.304 | 1.478 |
| Gary Clark | PF | 24 | HOU | 674122 | 51 | 2 | 641 | 50 | 151 | 0.331 | 41 | 138 | 0.297 | 9 | 13 | 0.692 | 0.467 | 7 | 7 | 1.000 | 24 | 92 | 116 | 18 | 20 | 26 | 7 | 47 | 148 | 0.231 | 0.011 | 0.041 | 0.028 | 0.031 | 0.011 | 0.064 | 2.902 | 0.353 | 2.275 |
| Georges Niang | PF | 25 | UTA | 1512601 | 59 | 0 | 516 | 86 | 181 | 0.475 | 43 | 105 | 0.410 | 43 | 76 | 0.566 | 0.594 | 20 | 24 | 0.833 | 11 | 76 | 87 | 35 | 10 | 6 | 23 | 57 | 235 | 0.455 | 0.039 | 0.012 | 0.068 | 0.019 | 0.045 | 0.083 | 3.983 | 0.593 | 1.475 |
| Giannis Antetokounmpo | PF | 24 | MIL | 24157304 | 72 | 72 | 2358 | 721 | 1247 | 0.578 | 52 | 203 | 0.256 | 669 | 1044 | 0.641 | 0.599 | 500 | 686 | 0.729 | 159 | 739 | 898 | 424 | 92 | 110 | 268 | 232 | 1994 | 0.846 | 0.212 | 0.047 | 0.180 | 0.039 | 0.114 | 0.022 | 27.694 | 5.889 | 12.472 |
| Gordon Hayward | PF | 28 | BOS | 31214295 | 72 | 18 | 1863 | 296 | 635 | 0.466 | 77 | 231 | 0.333 | 219 | 404 | 0.542 | 0.527 | 156 | 187 | 0.834 | 51 | 271 | 322 | 244 | 62 | 23 | 105 | 104 | 825 | 0.443 | 0.084 | 0.012 | 0.131 | 0.033 | 0.056 | 0.041 | 11.458 | 3.389 | 4.472 |
| Guerschon Yabusele | PF | 23 | BOS | 2667600 | 41 | 1 | 251 | 35 | 77 | 0.455 | 9 | 28 | 0.321 | 26 | 49 | 0.531 | 0.513 | 15 | 22 | 0.682 | 23 | 30 | 53 | 15 | 8 | 7 | 15 | 32 | 94 | 0.375 | 0.060 | 0.028 | 0.060 | 0.032 | 0.060 | 0.036 | 2.293 | 0.366 | 1.293 |
| Harry Giles | PF | 20 | SAC | 2207040 | 58 | 0 | 820 | 175 | 348 | 0.503 | 0 | 6 | 0.000 | 175 | 342 | 0.512 | 0.503 | 58 | 91 | 0.637 | 66 | 156 | 222 | 85 | 31 | 22 | 73 | 150 | 408 | 0.498 | 0.071 | 0.027 | 0.104 | 0.038 | 0.089 | 0.000 | 7.034 | 1.466 | 3.828 |
| Isaiah Hartenstein | PF | 20 | HOU | 838464 | 28 | 0 | 221 | 20 | 41 | 0.488 | 2 | 6 | 0.333 | 18 | 35 | 0.514 | 0.512 | 11 | 14 | 0.786 | 21 | 26 | 47 | 15 | 7 | 12 | 13 | 56 | 53 | 0.240 | 0.050 | 0.054 | 0.068 | 0.032 | 0.059 | 0.009 | 1.893 | 0.536 | 1.679 |
| Ivan Rabb | PF | 21 | MEM | 1378242 | 49 | 13 | 721 | 116 | 212 | 0.547 | 3 | 15 | 0.200 | 113 | 197 | 0.574 | 0.554 | 49 | 69 | 0.710 | 70 | 136 | 206 | 54 | 17 | 14 | 35 | 90 | 284 | 0.394 | 0.068 | 0.019 | 0.075 | 0.024 | 0.049 | 0.004 | 5.796 | 1.102 | 4.204 |
| Jabari Parker | PF | 23 | TOT | 20000000 | 64 | 17 | 1724 | 369 | 749 | 0.493 | 61 | 195 | 0.313 | 308 | 554 | 0.556 | 0.533 | 131 | 184 | 0.712 | 79 | 342 | 421 | 152 | 46 | 30 | 151 | 145 | 930 | 0.539 | 0.076 | 0.017 | 0.088 | 0.027 | 0.088 | 0.035 | 14.531 | 2.375 | 6.578 |
| James Johnson | PF | 31 | MIA | 14420700 | 55 | 33 | 1164 | 164 | 379 | 0.433 | 50 | 149 | 0.336 | 114 | 230 | 0.496 | 0.499 | 50 | 70 | 0.714 | 22 | 154 | 176 | 135 | 35 | 27 | 74 | 114 | 428 | 0.368 | 0.043 | 0.023 | 0.116 | 0.030 | 0.064 | 0.043 | 7.782 | 2.455 | 3.200 |
| JaMychal Green | PF | 28 | TOT | 8066667 | 65 | 6 | 1371 | 230 | 476 | 0.483 | 71 | 176 | 0.403 | 159 | 300 | 0.530 | 0.558 | 80 | 101 | 0.792 | 104 | 305 | 409 | 50 | 45 | 34 | 87 | 193 | 611 | 0.446 | 0.058 | 0.025 | 0.036 | 0.033 | 0.063 | 0.052 | 9.400 | 0.769 | 6.292 |
| Jared Dudley | PF | 33 | BRK | 9530000 | 59 | 25 | 1220 | 101 | 239 | 0.423 | 53 | 151 | 0.351 | 48 | 88 | 0.545 | 0.533 | 32 | 46 | 0.696 | 34 | 121 | 155 | 83 | 36 | 16 | 43 | 131 | 287 | 0.235 | 0.026 | 0.013 | 0.068 | 0.030 | 0.035 | 0.043 | 4.864 | 1.407 | 2.627 |
| Jarell Martin | PF | 24 | ORL | 2416221 | 42 | 1 | 328 | 43 | 104 | 0.413 | 20 | 57 | 0.351 | 23 | 47 | 0.489 | 0.510 | 9 | 11 | 0.818 | 11 | 62 | 73 | 18 | 3 | 8 | 11 | 51 | 115 | 0.351 | 0.027 | 0.024 | 0.055 | 0.009 | 0.034 | 0.061 | 2.738 | 0.429 | 1.738 |
| Jaren Jackson | PF | 19 | MEM | 5922720 | 58 | 56 | 1515 | 298 | 589 | 0.506 | 51 | 142 | 0.359 | 247 | 447 | 0.553 | 0.549 | 151 | 197 | 0.766 | 73 | 199 | 272 | 64 | 52 | 82 | 98 | 220 | 798 | 0.527 | 0.100 | 0.054 | 0.042 | 0.034 | 0.065 | 0.034 | 13.759 | 1.103 | 4.690 |
| Jeff Green | PF | 32 | WAS | 2393887 | 77 | 44 | 2097 | 326 | 687 | 0.475 | 111 | 320 | 0.347 | 215 | 367 | 0.586 | 0.555 | 183 | 206 | 0.888 | 57 | 252 | 309 | 137 | 43 | 39 | 101 | 160 | 946 | 0.451 | 0.087 | 0.019 | 0.065 | 0.021 | 0.048 | 0.053 | 12.286 | 1.779 | 4.013 |
| Jerami Grant | PF | 24 | OKC | 8333333 | 80 | 77 | 2612 | 409 | 823 | 0.497 | 115 | 293 | 0.392 | 294 | 530 | 0.555 | 0.567 | 157 | 221 | 0.710 | 96 | 321 | 417 | 79 | 61 | 100 | 67 | 214 | 1090 | 0.417 | 0.060 | 0.038 | 0.030 | 0.023 | 0.026 | 0.044 | 13.625 | 0.988 | 5.213 |
| Joe Ingles | PF | 31 | UTA | 12545455 | 82 | 82 | 2568 | 359 | 802 | 0.448 | 189 | 483 | 0.391 | 170 | 319 | 0.533 | 0.565 | 87 | 123 | 0.707 | 35 | 295 | 330 | 469 | 98 | 20 | 193 | 180 | 994 | 0.387 | 0.034 | 0.008 | 0.183 | 0.038 | 0.075 | 0.074 | 12.122 | 5.720 | 4.024 |
| John Collins | PF | 21 | ATL | 2299080 | 61 | 59 | 1829 | 465 | 831 | 0.560 | 55 | 158 | 0.348 | 410 | 673 | 0.609 | 0.593 | 203 | 266 | 0.763 | 219 | 376 | 595 | 121 | 22 | 39 | 120 | 199 | 1188 | 0.650 | 0.111 | 0.021 | 0.066 | 0.012 | 0.066 | 0.030 | 19.475 | 1.984 | 9.754 |
| Johnathan Motley | PF | 23 | LAC | 77250 | 22 | 0 | 156 | 39 | 73 | 0.534 | 0 | 3 | 0.000 | 39 | 70 | 0.557 | 0.534 | 24 | 40 | 0.600 | 18 | 33 | 51 | 11 | 5 | 3 | 16 | 27 | 102 | 0.654 | 0.154 | 0.019 | 0.071 | 0.032 | 0.103 | 0.000 | 4.636 | 0.500 | 2.318 |
| Jon Leuer | PF | 29 | DET | 10002681 | 41 | 1 | 402 | 66 | 113 | 0.584 | 1 | 11 | 0.091 | 65 | 102 | 0.637 | 0.588 | 23 | 31 | 0.742 | 27 | 70 | 97 | 14 | 12 | 4 | 23 | 60 | 156 | 0.388 | 0.057 | 0.010 | 0.035 | 0.030 | 0.057 | 0.002 | 3.805 | 0.341 | 2.366 |
| Jonah Bolden | PF | 23 | PHI | 1690000 | 44 | 10 | 639 | 80 | 162 | 0.494 | 34 | 96 | 0.354 | 46 | 66 | 0.697 | 0.599 | 13 | 27 | 0.481 | 47 | 118 | 165 | 40 | 17 | 39 | 36 | 99 | 207 | 0.324 | 0.020 | 0.061 | 0.063 | 0.027 | 0.056 | 0.053 | 4.705 | 0.909 | 3.750 |
| Jonas Jerebko | PF | 31 | GSW | 2165481 | 73 | 6 | 1218 | 163 | 355 | 0.459 | 69 | 188 | 0.367 | 94 | 167 | 0.563 | 0.556 | 64 | 80 | 0.800 | 72 | 216 | 288 | 96 | 27 | 18 | 43 | 137 | 459 | 0.377 | 0.053 | 0.015 | 0.079 | 0.022 | 0.035 | 0.057 | 6.288 | 1.315 | 3.945 |
| Jonathan Isaac | PF | 21 | ORL | 4969080 | 75 | 64 | 1996 | 262 | 611 | 0.429 | 86 | 266 | 0.323 | 176 | 345 | 0.510 | 0.499 | 110 | 135 | 0.815 | 99 | 312 | 411 | 80 | 59 | 98 | 75 | 143 | 720 | 0.361 | 0.055 | 0.049 | 0.040 | 0.030 | 0.038 | 0.043 | 9.600 | 1.067 | 5.480 |
| Julius Randle | PF | 24 | NOP | 8641000 | 73 | 49 | 2232 | 571 | 1089 | 0.524 | 67 | 195 | 0.344 | 504 | 894 | 0.564 | 0.555 | 356 | 487 | 0.731 | 162 | 472 | 634 | 229 | 52 | 45 | 208 | 246 | 1565 | 0.701 | 0.159 | 0.020 | 0.103 | 0.023 | 0.093 | 0.030 | 21.438 | 3.137 | 8.685 |
| Kelly Olynyk | PF | 27 | MIA | 13537527 | 79 | 36 | 1812 | 261 | 564 | 0.463 | 113 | 319 | 0.354 | 148 | 245 | 0.604 | 0.563 | 152 | 185 | 0.822 | 72 | 303 | 375 | 140 | 53 | 37 | 114 | 183 | 787 | 0.434 | 0.084 | 0.020 | 0.077 | 0.029 | 0.063 | 0.062 | 9.962 | 1.772 | 4.747 |
| Kevin Knox | PF | 19 | NYK | 3744840 | 75 | 57 | 2158 | 338 | 914 | 0.370 | 125 | 364 | 0.343 | 213 | 550 | 0.387 | 0.438 | 162 | 226 | 0.717 | 61 | 274 | 335 | 82 | 43 | 24 | 114 | 175 | 963 | 0.446 | 0.075 | 0.011 | 0.038 | 0.020 | 0.053 | 0.058 | 12.840 | 1.093 | 4.467 |
| Kevin Love | PF | 30 | CLE | 24119025 | 22 | 21 | 598 | 109 | 283 | 0.385 | 53 | 147 | 0.361 | 56 | 136 | 0.412 | 0.479 | 103 | 114 | 0.904 | 33 | 206 | 239 | 48 | 6 | 5 | 42 | 54 | 374 | 0.625 | 0.172 | 0.008 | 0.080 | 0.010 | 0.070 | 0.089 | 17.000 | 2.182 | 10.864 |
| Kyle Kuzma | PF | 23 | LAL | 1689840 | 70 | 68 | 2314 | 496 | 1087 | 0.456 | 128 | 422 | 0.303 | 368 | 665 | 0.553 | 0.515 | 188 | 250 | 0.752 | 60 | 322 | 382 | 178 | 41 | 26 | 133 | 170 | 1308 | 0.565 | 0.081 | 0.011 | 0.077 | 0.018 | 0.057 | 0.055 | 18.686 | 2.543 | 5.457 |
| Lance Thomas | PF | 30 | NYK | 7119650 | 46 | 17 | 783 | 78 | 197 | 0.396 | 22 | 79 | 0.278 | 56 | 118 | 0.475 | 0.452 | 27 | 36 | 0.750 | 21 | 96 | 117 | 27 | 17 | 7 | 24 | 83 | 205 | 0.262 | 0.034 | 0.009 | 0.034 | 0.022 | 0.031 | 0.028 | 4.457 | 0.587 | 2.543 |
| Lauri Markkanen | PF | 21 | CHI | 4536120 | 52 | 51 | 1682 | 342 | 795 | 0.430 | 120 | 332 | 0.361 | 222 | 463 | 0.479 | 0.506 | 170 | 195 | 0.872 | 74 | 396 | 470 | 75 | 37 | 33 | 85 | 122 | 974 | 0.579 | 0.101 | 0.020 | 0.045 | 0.022 | 0.051 | 0.071 | 18.731 | 1.442 | 9.038 |
| Luke Kornet | PF | 23 | NYK | 1619260 | 46 | 18 | 784 | 107 | 283 | 0.378 | 70 | 193 | 0.363 | 37 | 90 | 0.411 | 0.502 | 38 | 46 | 0.826 | 28 | 107 | 135 | 54 | 27 | 42 | 25 | 41 | 322 | 0.411 | 0.048 | 0.054 | 0.069 | 0.034 | 0.032 | 0.089 | 7.000 | 1.174 | 2.935 |
| Marcus Morris | PF | 29 | BOS | 5375000 | 75 | 53 | 2091 | 377 | 844 | 0.447 | 146 | 389 | 0.375 | 231 | 455 | 0.508 | 0.533 | 146 | 173 | 0.844 | 76 | 382 | 458 | 109 | 43 | 25 | 92 | 181 | 1046 | 0.500 | 0.070 | 0.012 | 0.052 | 0.021 | 0.044 | 0.070 | 13.947 | 1.453 | 6.107 |
| Markieff Morris | PF | 29 | TOT | 9173294 | 58 | 16 | 1270 | 204 | 484 | 0.421 | 68 | 203 | 0.335 | 136 | 281 | 0.484 | 0.492 | 71 | 92 | 0.772 | 61 | 204 | 265 | 79 | 36 | 22 | 54 | 175 | 547 | 0.431 | 0.056 | 0.017 | 0.062 | 0.028 | 0.043 | 0.054 | 9.431 | 1.362 | 4.569 |
| Marquese Chriss | PF | 21 | TOT | 3206160 | 43 | 2 | 499 | 67 | 180 | 0.372 | 16 | 72 | 0.222 | 51 | 108 | 0.472 | 0.417 | 32 | 45 | 0.711 | 40 | 102 | 142 | 22 | 17 | 11 | 36 | 81 | 182 | 0.365 | 0.064 | 0.022 | 0.044 | 0.034 | 0.072 | 0.032 | 4.233 | 0.512 | 3.302 |
| Marvin Bagley | PF | 19 | SAC | 7314960 | 62 | 4 | 1567 | 356 | 706 | 0.504 | 30 | 96 | 0.313 | 326 | 610 | 0.534 | 0.525 | 181 | 262 | 0.691 | 162 | 309 | 471 | 62 | 33 | 59 | 98 | 120 | 923 | 0.589 | 0.116 | 0.038 | 0.040 | 0.021 | 0.063 | 0.019 | 14.887 | 1.000 | 7.597 |
| Marvin Williams | PF | 32 | CHO | 14087500 | 75 | 75 | 2133 | 275 | 652 | 0.422 | 140 | 382 | 0.366 | 135 | 270 | 0.500 | 0.529 | 66 | 86 | 0.767 | 76 | 331 | 407 | 92 | 71 | 61 | 47 | 156 | 756 | 0.354 | 0.031 | 0.029 | 0.043 | 0.033 | 0.022 | 0.066 | 10.080 | 1.227 | 5.427 |
| Maxi Kleber | PF | 27 | DAL | 1378242 | 71 | 18 | 1502 | 175 | 386 | 0.453 | 77 | 218 | 0.353 | 98 | 168 | 0.583 | 0.553 | 58 | 74 | 0.784 | 90 | 239 | 329 | 70 | 36 | 78 | 54 | 143 | 485 | 0.323 | 0.039 | 0.052 | 0.047 | 0.024 | 0.036 | 0.051 | 6.831 | 0.986 | 4.634 |
| Michael Beasley | PF | 30 | LAL | 3500000 | 26 | 2 | 277 | 75 | 153 | 0.490 | 3 | 17 | 0.176 | 72 | 136 | 0.529 | 0.500 | 28 | 39 | 0.718 | 13 | 47 | 60 | 25 | 9 | 10 | 27 | 42 | 181 | 0.653 | 0.101 | 0.036 | 0.090 | 0.032 | 0.097 | 0.011 | 6.962 | 0.962 | 2.308 |
| Michael Kidd-Gilchrist | PF | 25 | CHO | 13000000 | 64 | 3 | 1179 | 158 | 332 | 0.476 | 16 | 47 | 0.340 | 142 | 285 | 0.498 | 0.500 | 95 | 123 | 0.772 | 88 | 158 | 246 | 61 | 32 | 39 | 43 | 156 | 427 | 0.362 | 0.081 | 0.033 | 0.052 | 0.027 | 0.036 | 0.014 | 6.672 | 0.953 | 3.844 |
| Mike Muscala | PF | 27 | TOT | 5000000 | 64 | 10 | 1306 | 145 | 361 | 0.402 | 89 | 256 | 0.348 | 56 | 105 | 0.533 | 0.525 | 70 | 85 | 0.824 | 57 | 187 | 244 | 76 | 22 | 38 | 48 | 130 | 449 | 0.344 | 0.054 | 0.029 | 0.058 | 0.017 | 0.037 | 0.068 | 7.016 | 1.188 | 3.812 |
| Mike Scott | PF | 30 | TOT | 4320500 | 79 | 3 | 1395 | 168 | 420 | 0.400 | 101 | 252 | 0.401 | 67 | 168 | 0.399 | 0.520 | 22 | 33 | 0.667 | 43 | 233 | 276 | 66 | 26 | 13 | 44 | 156 | 459 | 0.329 | 0.016 | 0.009 | 0.047 | 0.019 | 0.032 | 0.072 | 5.810 | 0.835 | 3.494 |
| Nemanja Bjelica | PF | 30 | SAC | 6500000 | 77 | 70 | 1788 | 284 | 593 | 0.479 | 103 | 257 | 0.401 | 181 | 336 | 0.539 | 0.566 | 70 | 92 | 0.761 | 125 | 319 | 444 | 147 | 54 | 56 | 82 | 197 | 741 | 0.414 | 0.039 | 0.031 | 0.082 | 0.030 | 0.046 | 0.058 | 9.623 | 1.909 | 5.766 |
| Noah Vonleh | PF | 23 | NYK | 1621415 | 68 | 57 | 1722 | 207 | 440 | 0.470 | 46 | 137 | 0.336 | 161 | 303 | 0.531 | 0.523 | 111 | 156 | 0.712 | 113 | 415 | 528 | 129 | 46 | 51 | 88 | 174 | 571 | 0.332 | 0.064 | 0.030 | 0.075 | 0.027 | 0.051 | 0.027 | 8.397 | 1.897 | 7.765 |
| Omari Spellman | PF | 21 | ATL | 1622520 | 46 | 11 | 805 | 98 | 244 | 0.402 | 44 | 128 | 0.344 | 54 | 116 | 0.466 | 0.492 | 32 | 45 | 0.711 | 72 | 122 | 194 | 47 | 26 | 25 | 31 | 67 | 272 | 0.338 | 0.040 | 0.031 | 0.058 | 0.032 | 0.039 | 0.055 | 5.913 | 1.022 | 4.217 |
| Pascal Siakam | PF | 24 | TOR | 1544951 | 80 | 79 | 2548 | 519 | 945 | 0.549 | 79 | 214 | 0.369 | 440 | 731 | 0.602 | 0.591 | 237 | 302 | 0.785 | 124 | 425 | 549 | 248 | 73 | 52 | 154 | 241 | 1354 | 0.531 | 0.093 | 0.020 | 0.097 | 0.029 | 0.060 | 0.031 | 16.925 | 3.100 | 6.862 |
| Patrick Patterson | PF | 29 | OKC | 5451600 | 63 | 5 | 861 | 82 | 219 | 0.374 | 46 | 137 | 0.336 | 36 | 82 | 0.439 | 0.479 | 19 | 30 | 0.633 | 42 | 105 | 147 | 31 | 16 | 13 | 22 | 46 | 229 | 0.266 | 0.022 | 0.015 | 0.036 | 0.019 | 0.026 | 0.053 | 3.635 | 0.492 | 2.333 |
| Paul Millsap | PF | 33 | DEN | 29230769 | 70 | 65 | 1895 | 322 | 665 | 0.484 | 58 | 159 | 0.365 | 264 | 506 | 0.522 | 0.528 | 181 | 249 | 0.727 | 153 | 352 | 505 | 141 | 83 | 54 | 95 | 183 | 883 | 0.466 | 0.096 | 0.028 | 0.074 | 0.044 | 0.050 | 0.031 | 12.614 | 2.014 | 7.214 |
| Rudy Gay | PF | 32 | SAS | 10087200 | 69 | 51 | 1842 | 376 | 746 | 0.504 | 74 | 184 | 0.402 | 302 | 562 | 0.537 | 0.554 | 120 | 147 | 0.816 | 63 | 407 | 470 | 182 | 54 | 34 | 114 | 159 | 946 | 0.514 | 0.065 | 0.018 | 0.099 | 0.029 | 0.062 | 0.040 | 13.710 | 2.638 | 6.812 |
| Ryan Anderson | PF | 30 | TOT | 20421546 | 25 | 8 | 322 | 21 | 69 | 0.304 | 9 | 40 | 0.225 | 12 | 29 | 0.414 | 0.370 | 12 | 16 | 0.750 | 18 | 36 | 54 | 19 | 4 | 1 | 14 | 25 | 63 | 0.196 | 0.037 | 0.003 | 0.059 | 0.012 | 0.043 | 0.028 | 2.520 | 0.760 | 2.160 |
| Sam Dekker | PF | 24 | TOT | 2760094 | 47 | 5 | 788 | 120 | 256 | 0.469 | 19 | 62 | 0.306 | 101 | 194 | 0.521 | 0.506 | 28 | 46 | 0.609 | 53 | 95 | 148 | 46 | 38 | 7 | 24 | 47 | 287 | 0.364 | 0.036 | 0.009 | 0.058 | 0.048 | 0.030 | 0.024 | 6.106 | 0.979 | 3.149 |
| Semi Ojeleye | PF | 24 | BOS | 1378242 | 56 | 3 | 594 | 67 | 158 | 0.424 | 28 | 89 | 0.315 | 39 | 69 | 0.565 | 0.513 | 24 | 39 | 0.615 | 24 | 62 | 86 | 23 | 10 | 4 | 19 | 43 | 186 | 0.313 | 0.040 | 0.007 | 0.039 | 0.017 | 0.032 | 0.047 | 3.321 | 0.411 | 1.536 |
| Taj Gibson | PF | 33 | MIN | 14000000 | 70 | 57 | 1686 | 304 | 537 | 0.566 | 11 | 34 | 0.324 | 293 | 503 | 0.583 | 0.576 | 134 | 177 | 0.757 | 172 | 286 | 458 | 84 | 53 | 39 | 73 | 186 | 753 | 0.447 | 0.079 | 0.023 | 0.050 | 0.031 | 0.043 | 0.007 | 10.757 | 1.200 | 6.543 |
| Thaddeus Young | PF | 30 | IND | 13764045 | 81 | 81 | 2489 | 443 | 841 | 0.527 | 51 | 146 | 0.349 | 392 | 695 | 0.564 | 0.557 | 87 | 135 | 0.644 | 192 | 331 | 523 | 204 | 123 | 36 | 123 | 194 | 1024 | 0.411 | 0.035 | 0.014 | 0.082 | 0.049 | 0.049 | 0.020 | 12.642 | 2.519 | 6.457 |
| Tobias Harris | PF | 26 | TOT | 14800000 | 82 | 82 | 2847 | 611 | 1254 | 0.487 | 156 | 393 | 0.397 | 455 | 861 | 0.528 | 0.549 | 266 | 307 | 0.866 | 69 | 576 | 645 | 229 | 51 | 37 | 151 | 184 | 1644 | 0.577 | 0.093 | 0.013 | 0.080 | 0.018 | 0.053 | 0.055 | 20.049 | 2.793 | 7.866 |
| Trey Lyles | PF | 23 | DEN | 3364249 | 64 | 2 | 1120 | 207 | 495 | 0.418 | 51 | 200 | 0.255 | 156 | 295 | 0.529 | 0.470 | 81 | 116 | 0.698 | 44 | 202 | 246 | 87 | 30 | 23 | 68 | 93 | 546 | 0.488 | 0.072 | 0.021 | 0.078 | 0.027 | 0.061 | 0.046 | 8.531 | 1.359 | 3.844 |
| Vince Carter | PF | 42 | ATL | 2393887 | 76 | 9 | 1330 | 196 | 468 | 0.419 | 123 | 316 | 0.389 | 73 | 152 | 0.480 | 0.550 | 47 | 66 | 0.712 | 31 | 163 | 194 | 87 | 44 | 27 | 48 | 141 | 562 | 0.423 | 0.035 | 0.020 | 0.065 | 0.033 | 0.036 | 0.092 | 7.395 | 1.145 | 2.553 |
| Jason Smith | PF-C | 32 | TOT | 5450000 | 20 | 1 | 190 | 21 | 59 | 0.356 | 9 | 26 | 0.346 | 12 | 33 | 0.364 | 0.432 | 14 | 16 | 0.875 | 16 | 36 | 52 | 14 | 3 | 7 | 13 | 30 | 65 | 0.342 | 0.074 | 0.037 | 0.074 | 0.016 | 0.068 | 0.047 | 3.250 | 0.700 | 2.600 |
| Harrison Barnes | PF-SF | 26 | TOT | 24107258 | 77 | 77 | 2533 | 431 | 1027 | 0.420 | 174 | 441 | 0.395 | 257 | 586 | 0.439 | 0.504 | 229 | 278 | 0.824 | 57 | 304 | 361 | 115 | 50 | 13 | 98 | 122 | 1265 | 0.499 | 0.090 | 0.005 | 0.045 | 0.020 | 0.039 | 0.069 | 16.429 | 1.494 | 4.688 |
| Wilson Chandler | PF-SF | 31 | TOT | 12800562 | 51 | 33 | 1177 | 114 | 273 | 0.418 | 59 | 158 | 0.373 | 55 | 115 | 0.478 | 0.526 | 18 | 25 | 0.720 | 48 | 167 | 215 | 82 | 25 | 21 | 46 | 123 | 305 | 0.259 | 0.015 | 0.018 | 0.070 | 0.021 | 0.039 | 0.050 | 5.980 | 1.608 | 4.216 |
| Aaron Holiday | PG | 22 | IND | 1914480 | 50 | 0 | 646 | 105 | 262 | 0.401 | 43 | 127 | 0.339 | 62 | 135 | 0.459 | 0.483 | 41 | 50 | 0.820 | 5 | 62 | 67 | 87 | 21 | 13 | 40 | 71 | 294 | 0.455 | 0.063 | 0.020 | 0.135 | 0.033 | 0.062 | 0.067 | 5.880 | 1.740 | 1.340 |
| Alex Caruso | PG | 24 | LAL | 77250 | 25 | 4 | 531 | 77 | 173 | 0.445 | 24 | 50 | 0.480 | 53 | 123 | 0.431 | 0.514 | 51 | 64 | 0.797 | 20 | 47 | 67 | 77 | 24 | 9 | 42 | 54 | 229 | 0.431 | 0.096 | 0.017 | 0.145 | 0.045 | 0.079 | 0.045 | 9.160 | 3.080 | 2.680 |
| Ben Simmons | PG | 22 | PHI | 6434520 | 79 | 79 | 2700 | 540 | 960 | 0.563 | 0 | 6 | 0.000 | 540 | 954 | 0.566 | 0.563 | 257 | 428 | 0.600 | 172 | 525 | 697 | 610 | 112 | 61 | 274 | 209 | 1337 | 0.495 | 0.095 | 0.023 | 0.226 | 0.041 | 0.101 | 0.000 | 16.924 | 7.722 | 8.823 |
| Brad Wanamaker | PG | 29 | BOS | 838464 | 36 | 0 | 343 | 50 | 105 | 0.476 | 16 | 39 | 0.410 | 34 | 66 | 0.515 | 0.552 | 24 | 28 | 0.857 | 3 | 38 | 41 | 56 | 12 | 2 | 19 | 34 | 140 | 0.408 | 0.070 | 0.006 | 0.163 | 0.035 | 0.055 | 0.047 | 3.889 | 1.556 | 1.139 |
| Brandon Knight | PG | 27 | TOT | 14631250 | 39 | 26 | 736 | 99 | 260 | 0.381 | 41 | 129 | 0.318 | 58 | 131 | 0.443 | 0.460 | 27 | 34 | 0.794 | 10 | 49 | 59 | 71 | 21 | 2 | 30 | 62 | 266 | 0.361 | 0.037 | 0.003 | 0.096 | 0.029 | 0.041 | 0.056 | 6.821 | 1.821 | 1.513 |
| Cameron Payne | PG | 24 | TOT | 3440356 | 40 | 13 | 712 | 96 | 223 | 0.430 | 25 | 84 | 0.298 | 71 | 139 | 0.511 | 0.487 | 33 | 41 | 0.805 | 13 | 59 | 72 | 106 | 28 | 9 | 45 | 64 | 250 | 0.351 | 0.046 | 0.013 | 0.149 | 0.039 | 0.063 | 0.035 | 6.250 | 2.650 | 1.800 |
| Chasson Randle | PG | 25 | WAS | 975824 | 49 | 2 | 743 | 91 | 217 | 0.419 | 46 | 115 | 0.400 | 45 | 102 | 0.441 | 0.525 | 43 | 62 | 0.694 | 10 | 46 | 56 | 97 | 25 | 3 | 43 | 91 | 271 | 0.365 | 0.058 | 0.004 | 0.131 | 0.034 | 0.058 | 0.062 | 5.531 | 1.980 | 1.143 |
| Chris Paul | PG | 33 | HOU | 35654150 | 58 | 58 | 1857 | 302 | 720 | 0.419 | 127 | 355 | 0.358 | 175 | 365 | 0.479 | 0.508 | 175 | 203 | 0.862 | 36 | 229 | 265 | 473 | 114 | 18 | 152 | 146 | 906 | 0.488 | 0.094 | 0.010 | 0.255 | 0.061 | 0.082 | 0.068 | 15.621 | 8.155 | 4.569 |
| Collin Sexton | PG | 20 | CLE | 4073760 | 82 | 72 | 2605 | 519 | 1206 | 0.430 | 119 | 296 | 0.402 | 400 | 910 | 0.440 | 0.480 | 214 | 255 | 0.839 | 57 | 179 | 236 | 243 | 44 | 6 | 185 | 186 | 1371 | 0.526 | 0.082 | 0.002 | 0.093 | 0.017 | 0.071 | 0.046 | 16.720 | 2.963 | 2.878 |
| Cory Joseph | PG | 27 | IND | 7945000 | 82 | 9 | 2063 | 226 | 548 | 0.412 | 55 | 171 | 0.322 | 171 | 377 | 0.454 | 0.463 | 30 | 43 | 0.698 | 39 | 240 | 279 | 321 | 94 | 22 | 80 | 131 | 537 | 0.260 | 0.015 | 0.011 | 0.156 | 0.046 | 0.039 | 0.027 | 6.549 | 3.915 | 3.402 |
| D’Angelo Russell | PG | 22 | BRK | 7019698 | 81 | 81 | 2448 | 659 | 1517 | 0.434 | 234 | 635 | 0.369 | 425 | 882 | 0.482 | 0.512 | 160 | 205 | 0.780 | 53 | 262 | 315 | 563 | 100 | 20 | 253 | 141 | 1712 | 0.699 | 0.065 | 0.008 | 0.230 | 0.041 | 0.103 | 0.096 | 21.136 | 6.951 | 3.889 |
| Damian Lillard | PG | 28 | POR | 27977689 | 80 | 80 | 2838 | 681 | 1533 | 0.444 | 237 | 643 | 0.369 | 444 | 890 | 0.499 | 0.522 | 468 | 513 | 0.912 | 68 | 303 | 371 | 551 | 88 | 34 | 212 | 148 | 2067 | 0.728 | 0.165 | 0.012 | 0.194 | 0.031 | 0.075 | 0.084 | 25.837 | 6.888 | 4.638 |
| Dante Exum | PG | 23 | UTA | 10600000 | 42 | 1 | 664 | 101 | 241 | 0.419 | 18 | 62 | 0.290 | 83 | 179 | 0.464 | 0.456 | 68 | 86 | 0.791 | 16 | 52 | 68 | 110 | 14 | 5 | 52 | 69 | 288 | 0.434 | 0.102 | 0.008 | 0.166 | 0.021 | 0.078 | 0.027 | 6.857 | 2.619 | 1.619 |
| Darren Collison | PG | 31 | IND | 10000000 | 76 | 76 | 2143 | 308 | 659 | 0.467 | 79 | 194 | 0.407 | 229 | 465 | 0.492 | 0.527 | 158 | 190 | 0.832 | 36 | 196 | 232 | 459 | 110 | 9 | 125 | 138 | 853 | 0.398 | 0.074 | 0.004 | 0.214 | 0.051 | 0.058 | 0.037 | 11.224 | 6.039 | 3.053 |
| De’Aaron Fox | PG | 21 | SAC | 5470920 | 81 | 81 | 2546 | 505 | 1102 | 0.458 | 86 | 232 | 0.371 | 419 | 870 | 0.482 | 0.497 | 303 | 417 | 0.727 | 43 | 261 | 304 | 590 | 133 | 45 | 227 | 204 | 1399 | 0.549 | 0.119 | 0.018 | 0.232 | 0.052 | 0.089 | 0.034 | 17.272 | 7.284 | 3.753 |
| De’Anthony Melton | PG | 20 | PHO | 949000 | 50 | 31 | 984 | 100 | 256 | 0.391 | 29 | 95 | 0.305 | 71 | 161 | 0.441 | 0.447 | 21 | 28 | 0.750 | 25 | 109 | 134 | 159 | 68 | 23 | 75 | 113 | 250 | 0.254 | 0.021 | 0.023 | 0.162 | 0.069 | 0.076 | 0.029 | 5.000 | 3.180 | 2.680 |
| Delon Wright | PG | 26 | TOT | 2536898 | 75 | 13 | 1699 | 242 | 558 | 0.434 | 50 | 168 | 0.298 | 192 | 390 | 0.492 | 0.478 | 119 | 150 | 0.793 | 68 | 198 | 266 | 248 | 88 | 30 | 77 | 103 | 653 | 0.384 | 0.070 | 0.018 | 0.146 | 0.052 | 0.045 | 0.029 | 8.707 | 3.307 | 3.547 |
| Dennis Smith | PG | 21 | TOT | 3819960 | 53 | 50 | 1508 | 278 | 650 | 0.428 | 67 | 208 | 0.322 | 211 | 442 | 0.477 | 0.479 | 99 | 156 | 0.635 | 32 | 123 | 155 | 252 | 67 | 20 | 154 | 129 | 722 | 0.479 | 0.066 | 0.013 | 0.167 | 0.044 | 0.102 | 0.044 | 13.623 | 4.755 | 2.925 |
| Derrick Rose | PG | 30 | MIN | 2176260 | 51 | 13 | 1392 | 363 | 753 | 0.482 | 54 | 146 | 0.370 | 309 | 607 | 0.509 | 0.518 | 137 | 160 | 0.856 | 33 | 107 | 140 | 220 | 31 | 12 | 82 | 57 | 917 | 0.659 | 0.098 | 0.009 | 0.158 | 0.022 | 0.059 | 0.039 | 17.980 | 4.314 | 2.745 |
| Derrick White | PG | 24 | SAS | 1667160 | 67 | 55 | 1728 | 260 | 543 | 0.479 | 48 | 142 | 0.338 | 212 | 401 | 0.529 | 0.523 | 95 | 123 | 0.772 | 35 | 212 | 247 | 263 | 67 | 47 | 97 | 145 | 663 | 0.384 | 0.055 | 0.027 | 0.152 | 0.039 | 0.056 | 0.028 | 9.896 | 3.925 | 3.687 |
| Devin Harris | PG | 35 | DAL | 2393887 | 68 | 2 | 1071 | 132 | 347 | 0.380 | 62 | 200 | 0.310 | 70 | 147 | 0.476 | 0.470 | 102 | 134 | 0.761 | 12 | 100 | 112 | 122 | 35 | 16 | 56 | 133 | 428 | 0.400 | 0.095 | 0.015 | 0.114 | 0.033 | 0.052 | 0.058 | 6.294 | 1.794 | 1.647 |
| Edmond Sumner | PG | 23 | IND | 449794 | 23 | 2 | 210 | 22 | 64 | 0.344 | 7 | 27 | 0.259 | 15 | 37 | 0.405 | 0.398 | 15 | 24 | 0.625 | 9 | 15 | 24 | 10 | 12 | 5 | 10 | 26 | 66 | 0.314 | 0.071 | 0.024 | 0.048 | 0.057 | 0.048 | 0.033 | 2.870 | 0.435 | 1.043 |
| Elfrid Payton | PG | 24 | NOP | 3000000 | 42 | 42 | 1250 | 179 | 412 | 0.434 | 33 | 105 | 0.314 | 146 | 307 | 0.476 | 0.475 | 55 | 74 | 0.743 | 49 | 171 | 220 | 320 | 44 | 17 | 112 | 81 | 446 | 0.357 | 0.044 | 0.014 | 0.256 | 0.035 | 0.090 | 0.026 | 10.619 | 7.619 | 5.238 |
| Elie Okobo | PG | 21 | PHO | 1238464 | 53 | 16 | 958 | 114 | 290 | 0.393 | 39 | 132 | 0.295 | 75 | 158 | 0.475 | 0.460 | 37 | 47 | 0.787 | 12 | 86 | 98 | 127 | 32 | 7 | 69 | 109 | 304 | 0.317 | 0.039 | 0.007 | 0.133 | 0.033 | 0.072 | 0.041 | 5.736 | 2.396 | 1.849 |
| Emmanuel Mudiay | PG | 22 | NYK | 4294479 | 59 | 42 | 1607 | 330 | 740 | 0.446 | 69 | 210 | 0.329 | 261 | 530 | 0.492 | 0.493 | 144 | 186 | 0.774 | 33 | 163 | 196 | 228 | 43 | 19 | 140 | 103 | 873 | 0.543 | 0.090 | 0.012 | 0.142 | 0.027 | 0.087 | 0.043 | 14.797 | 3.864 | 3.322 |
| Eric Bledsoe | PG | 29 | MIL | 15000000 | 78 | 78 | 2272 | 470 | 971 | 0.484 | 124 | 377 | 0.329 | 346 | 594 | 0.582 | 0.548 | 177 | 236 | 0.750 | 82 | 280 | 362 | 430 | 116 | 29 | 165 | 156 | 1241 | 0.546 | 0.078 | 0.013 | 0.189 | 0.051 | 0.073 | 0.055 | 15.910 | 5.513 | 4.641 |
| Evan Turner | PG | 30 | POR | 17868853 | 73 | 2 | 1605 | 204 | 443 | 0.460 | 11 | 52 | 0.212 | 193 | 391 | 0.494 | 0.473 | 75 | 106 | 0.708 | 37 | 291 | 328 | 283 | 33 | 18 | 114 | 110 | 494 | 0.308 | 0.047 | 0.011 | 0.176 | 0.021 | 0.071 | 0.007 | 6.767 | 3.877 | 4.493 |
| Frank Jackson | PG | 20 | NOP | 1378242 | 61 | 16 | 1169 | 194 | 447 | 0.434 | 53 | 169 | 0.314 | 141 | 278 | 0.507 | 0.493 | 54 | 73 | 0.740 | 25 | 109 | 134 | 69 | 25 | 2 | 48 | 92 | 495 | 0.423 | 0.046 | 0.002 | 0.059 | 0.021 | 0.041 | 0.045 | 8.115 | 1.131 | 2.197 |
| Frank Mason | PG | 24 | SAC | 1378242 | 38 | 0 | 435 | 71 | 169 | 0.420 | 14 | 64 | 0.219 | 57 | 105 | 0.543 | 0.462 | 39 | 57 | 0.684 | 6 | 37 | 43 | 84 | 16 | 4 | 36 | 34 | 195 | 0.448 | 0.090 | 0.009 | 0.193 | 0.037 | 0.083 | 0.032 | 5.132 | 2.211 | 1.132 |
| Frank Ntilikina | PG | 20 | NYK | 4155720 | 43 | 16 | 904 | 95 | 282 | 0.337 | 33 | 115 | 0.287 | 62 | 167 | 0.371 | 0.395 | 23 | 30 | 0.767 | 12 | 75 | 87 | 121 | 30 | 14 | 56 | 104 | 246 | 0.272 | 0.025 | 0.015 | 0.134 | 0.033 | 0.062 | 0.037 | 5.721 | 2.814 | 2.023 |
| Fred VanVleet | PG | 24 | TOR | 8653847 | 64 | 28 | 1760 | 246 | 600 | 0.410 | 112 | 296 | 0.378 | 134 | 304 | 0.441 | 0.503 | 97 | 115 | 0.843 | 21 | 146 | 167 | 307 | 57 | 20 | 82 | 110 | 701 | 0.398 | 0.055 | 0.011 | 0.174 | 0.032 | 0.047 | 0.064 | 10.953 | 4.797 | 2.609 |
| George Hill | PG | 32 | TOT | 19000000 | 60 | 13 | 1302 | 170 | 376 | 0.452 | 48 | 153 | 0.314 | 122 | 223 | 0.547 | 0.516 | 70 | 85 | 0.824 | 39 | 109 | 148 | 135 | 52 | 8 | 51 | 102 | 458 | 0.352 | 0.054 | 0.006 | 0.104 | 0.040 | 0.039 | 0.037 | 7.633 | 2.250 | 2.467 |
| Isaac Bonga | PG | 19 | LAL | 1000000 | 22 | 0 | 120 | 5 | 33 | 0.152 | 0 | 8 | 0.000 | 5 | 25 | 0.200 | 0.152 | 9 | 15 | 0.600 | 9 | 16 | 25 | 15 | 9 | 4 | 6 | 9 | 19 | 0.158 | 0.075 | 0.033 | 0.125 | 0.075 | 0.050 | 0.000 | 0.864 | 0.682 | 1.136 |
| Isaiah Briscoe | PG | 22 | ORL | 838464 | 39 | 0 | 559 | 55 | 138 | 0.399 | 11 | 34 | 0.324 | 44 | 104 | 0.423 | 0.438 | 15 | 26 | 0.577 | 5 | 69 | 74 | 87 | 11 | 2 | 31 | 66 | 136 | 0.243 | 0.027 | 0.004 | 0.156 | 0.020 | 0.055 | 0.020 | 3.487 | 2.231 | 1.897 |
| Isaiah Canaan | PG | 27 | TOT | 744671 | 30 | 16 | 629 | 64 | 164 | 0.390 | 34 | 96 | 0.354 | 30 | 68 | 0.441 | 0.494 | 19 | 24 | 0.792 | 6 | 52 | 58 | 84 | 14 | 2 | 35 | 52 | 181 | 0.288 | 0.030 | 0.003 | 0.134 | 0.022 | 0.056 | 0.054 | 6.033 | 2.800 | 1.933 |
| Jalen Brunson | PG | 22 | DAL | 1230000 | 73 | 38 | 1591 | 264 | 565 | 0.467 | 63 | 181 | 0.348 | 201 | 384 | 0.523 | 0.523 | 87 | 120 | 0.725 | 25 | 144 | 169 | 230 | 37 | 4 | 88 | 127 | 678 | 0.426 | 0.055 | 0.003 | 0.145 | 0.023 | 0.055 | 0.040 | 9.288 | 3.151 | 2.315 |
| Jamal Murray | PG | 21 | DEN | 3499800 | 75 | 74 | 2447 | 513 | 1173 | 0.437 | 152 | 414 | 0.367 | 361 | 759 | 0.476 | 0.502 | 189 | 223 | 0.848 | 65 | 252 | 317 | 363 | 67 | 27 | 158 | 153 | 1367 | 0.559 | 0.077 | 0.011 | 0.148 | 0.027 | 0.065 | 0.062 | 18.227 | 4.840 | 4.227 |
| James Harden | PG | 29 | HOU | 30570000 | 78 | 78 | 2867 | 843 | 1909 | 0.442 | 378 | 1028 | 0.368 | 465 | 881 | 0.528 | 0.541 | 754 | 858 | 0.879 | 66 | 452 | 518 | 586 | 158 | 58 | 387 | 244 | 2818 | 0.983 | 0.263 | 0.020 | 0.204 | 0.055 | 0.135 | 0.132 | 36.128 | 7.513 | 6.641 |
| Jaylen Adams | PG | 22 | ATL | 236854 | 34 | 1 | 428 | 38 | 110 | 0.345 | 25 | 74 | 0.338 | 13 | 36 | 0.361 | 0.459 | 7 | 9 | 0.778 | 11 | 49 | 60 | 65 | 14 | 5 | 28 | 45 | 108 | 0.252 | 0.016 | 0.012 | 0.152 | 0.033 | 0.065 | 0.058 | 3.176 | 1.912 | 1.765 |
| Jeff Teague | PG | 30 | MIN | 19000000 | 42 | 41 | 1264 | 176 | 416 | 0.423 | 35 | 105 | 0.333 | 141 | 311 | 0.453 | 0.465 | 123 | 153 | 0.804 | 16 | 90 | 106 | 343 | 43 | 18 | 97 | 90 | 510 | 0.403 | 0.097 | 0.014 | 0.271 | 0.034 | 0.077 | 0.028 | 12.143 | 8.167 | 2.524 |
| Jeremy Lin | PG | 30 | TOT | 12516746 | 74 | 4 | 1436 | 238 | 541 | 0.440 | 55 | 187 | 0.294 | 183 | 354 | 0.517 | 0.491 | 176 | 210 | 0.838 | 22 | 157 | 179 | 231 | 47 | 13 | 124 | 144 | 707 | 0.492 | 0.123 | 0.009 | 0.161 | 0.033 | 0.086 | 0.038 | 9.554 | 3.122 | 2.419 |
| Jerian Grant | PG | 26 | ORL | 2639313 | 60 | 1 | 939 | 92 | 220 | 0.418 | 40 | 110 | 0.364 | 52 | 110 | 0.473 | 0.509 | 26 | 40 | 0.650 | 19 | 79 | 98 | 156 | 44 | 6 | 51 | 78 | 250 | 0.266 | 0.028 | 0.006 | 0.166 | 0.047 | 0.054 | 0.043 | 4.167 | 2.600 | 1.633 |
| Jerryd Bayless | PG | 30 | MIN | 8575916 | 34 | 6 | 657 | 82 | 230 | 0.357 | 29 | 98 | 0.296 | 53 | 132 | 0.402 | 0.420 | 16 | 28 | 0.571 | 11 | 51 | 62 | 119 | 18 | 2 | 32 | 56 | 209 | 0.318 | 0.024 | 0.003 | 0.181 | 0.027 | 0.049 | 0.044 | 6.147 | 3.500 | 1.824 |
| Jevon Carter | PG | 23 | MEM | 838464 | 39 | 3 | 577 | 56 | 185 | 0.303 | 34 | 102 | 0.333 | 22 | 83 | 0.265 | 0.395 | 26 | 32 | 0.813 | 14 | 52 | 66 | 69 | 26 | 11 | 33 | 55 | 172 | 0.298 | 0.045 | 0.019 | 0.120 | 0.045 | 0.057 | 0.059 | 4.410 | 1.769 | 1.692 |
| John Wall | PG | 28 | WAS | 19169800 | 32 | 32 | 1104 | 245 | 552 | 0.444 | 51 | 169 | 0.302 | 194 | 383 | 0.507 | 0.490 | 122 | 175 | 0.697 | 15 | 101 | 116 | 279 | 49 | 29 | 121 | 71 | 663 | 0.601 | 0.111 | 0.026 | 0.253 | 0.044 | 0.110 | 0.046 | 20.719 | 8.719 | 3.625 |
| Kemba Walker | PG | 28 | CHO | 12000000 | 82 | 82 | 2863 | 731 | 1684 | 0.434 | 260 | 731 | 0.356 | 471 | 953 | 0.494 | 0.511 | 380 | 450 | 0.844 | 52 | 309 | 361 | 484 | 102 | 34 | 211 | 131 | 2102 | 0.734 | 0.133 | 0.012 | 0.169 | 0.036 | 0.074 | 0.091 | 25.634 | 5.902 | 4.402 |
| Kris Dunn | PG | 24 | CHI | 4221000 | 46 | 44 | 1389 | 215 | 506 | 0.425 | 34 | 96 | 0.354 | 181 | 410 | 0.441 | 0.458 | 55 | 69 | 0.797 | 19 | 168 | 187 | 277 | 68 | 21 | 104 | 166 | 519 | 0.374 | 0.040 | 0.015 | 0.199 | 0.049 | 0.075 | 0.024 | 11.283 | 6.022 | 4.065 |
| Kyle Lowry | PG | 32 | TOR | 32700000 | 65 | 65 | 2213 | 304 | 739 | 0.411 | 157 | 453 | 0.347 | 147 | 286 | 0.514 | 0.518 | 161 | 194 | 0.830 | 41 | 271 | 312 | 564 | 91 | 31 | 182 | 166 | 926 | 0.418 | 0.073 | 0.014 | 0.255 | 0.041 | 0.082 | 0.071 | 14.246 | 8.677 | 4.800 |
| Kyrie Irving | PG | 26 | BOS | 20099189 | 67 | 67 | 2214 | 604 | 1241 | 0.487 | 174 | 434 | 0.401 | 430 | 807 | 0.533 | 0.557 | 214 | 245 | 0.873 | 71 | 264 | 335 | 464 | 103 | 34 | 172 | 167 | 1596 | 0.721 | 0.097 | 0.015 | 0.210 | 0.047 | 0.078 | 0.079 | 23.821 | 6.925 | 5.000 |
| Lonzo Ball | PG | 21 | LAL | 7461960 | 47 | 45 | 1423 | 185 | 456 | 0.406 | 75 | 228 | 0.329 | 110 | 228 | 0.482 | 0.488 | 20 | 48 | 0.417 | 54 | 197 | 251 | 255 | 69 | 19 | 103 | 114 | 465 | 0.327 | 0.014 | 0.013 | 0.179 | 0.048 | 0.072 | 0.053 | 9.894 | 5.426 | 5.340 |
| Lorenzo Brown | PG | 28 | TOR | 800000 | 26 | 0 | 212 | 23 | 71 | 0.324 | 6 | 28 | 0.214 | 17 | 43 | 0.395 | 0.366 | 3 | 3 | 1.000 | 5 | 26 | 31 | 28 | 12 | 5 | 16 | 22 | 55 | 0.259 | 0.014 | 0.024 | 0.132 | 0.057 | 0.075 | 0.028 | 2.115 | 1.077 | 1.192 |
| Matthew Dellavedova | PG | 28 | TOT | 9607500 | 48 | 0 | 812 | 98 | 242 | 0.405 | 44 | 130 | 0.338 | 54 | 112 | 0.482 | 0.496 | 42 | 52 | 0.808 | 6 | 71 | 77 | 181 | 14 | 2 | 68 | 75 | 282 | 0.347 | 0.052 | 0.002 | 0.223 | 0.017 | 0.084 | 0.054 | 5.875 | 3.771 | 1.604 |
| Michael Carter-Williams | PG | 27 | TOT | 1468082 | 28 | 1 | 372 | 46 | 123 | 0.374 | 10 | 38 | 0.263 | 36 | 85 | 0.424 | 0.415 | 32 | 53 | 0.604 | 19 | 51 | 70 | 70 | 20 | 15 | 20 | 48 | 134 | 0.360 | 0.086 | 0.040 | 0.188 | 0.054 | 0.054 | 0.027 | 4.786 | 2.500 | 2.500 |
| Mike Conley | PG | 31 | MEM | 30521115 | 70 | 70 | 2342 | 490 | 1120 | 0.438 | 155 | 426 | 0.364 | 335 | 694 | 0.483 | 0.507 | 343 | 406 | 0.845 | 40 | 199 | 239 | 449 | 94 | 22 | 130 | 123 | 1478 | 0.631 | 0.146 | 0.009 | 0.192 | 0.040 | 0.056 | 0.066 | 21.114 | 6.414 | 3.414 |
| Monte Morris | PG | 23 | DEN | 1349383 | 82 | 6 | 1970 | 346 | 702 | 0.493 | 94 | 227 | 0.414 | 252 | 475 | 0.531 | 0.560 | 65 | 81 | 0.802 | 35 | 159 | 194 | 297 | 73 | 4 | 52 | 102 | 851 | 0.432 | 0.033 | 0.002 | 0.151 | 0.037 | 0.026 | 0.048 | 10.378 | 3.622 | 2.366 |
| Patrick Beverley | PG | 30 | LAC | 5027028 | 78 | 49 | 2137 | 194 | 477 | 0.407 | 112 | 282 | 0.397 | 82 | 195 | 0.421 | 0.524 | 96 | 123 | 0.780 | 76 | 312 | 388 | 300 | 67 | 43 | 85 | 265 | 596 | 0.279 | 0.045 | 0.020 | 0.140 | 0.031 | 0.040 | 0.052 | 7.641 | 3.846 | 4.974 |
| Quinn Cook | PG | 25 | GSW | 1544951 | 74 | 10 | 1059 | 204 | 439 | 0.465 | 81 | 200 | 0.405 | 123 | 239 | 0.515 | 0.557 | 20 | 26 | 0.769 | 22 | 135 | 157 | 116 | 20 | 3 | 50 | 92 | 509 | 0.481 | 0.019 | 0.003 | 0.110 | 0.019 | 0.047 | 0.076 | 6.878 | 1.568 | 2.122 |
| Rajon Rondo | PG | 32 | LAL | 9000000 | 46 | 29 | 1369 | 175 | 432 | 0.405 | 51 | 142 | 0.359 | 124 | 290 | 0.428 | 0.464 | 23 | 36 | 0.639 | 34 | 209 | 243 | 367 | 57 | 7 | 127 | 100 | 424 | 0.310 | 0.017 | 0.005 | 0.268 | 0.042 | 0.093 | 0.037 | 9.217 | 7.978 | 5.283 |
| Raul Neto | PG | 26 | UTA | 2100000 | 37 | 1 | 474 | 74 | 161 | 0.460 | 20 | 60 | 0.333 | 54 | 101 | 0.535 | 0.522 | 28 | 33 | 0.848 | 6 | 56 | 62 | 93 | 14 | 4 | 35 | 49 | 196 | 0.414 | 0.059 | 0.008 | 0.196 | 0.030 | 0.074 | 0.042 | 5.297 | 2.514 | 1.676 |
| Raymond Felton | PG | 34 | OKC | 2393887 | 33 | 0 | 379 | 55 | 135 | 0.407 | 20 | 61 | 0.328 | 35 | 74 | 0.473 | 0.481 | 12 | 13 | 0.923 | 4 | 30 | 34 | 52 | 10 | 6 | 14 | 29 | 142 | 0.375 | 0.032 | 0.016 | 0.137 | 0.026 | 0.037 | 0.053 | 4.303 | 1.576 | 1.030 |
| Reggie Jackson | PG | 28 | DET | 17043478 | 82 | 82 | 2289 | 441 | 1047 | 0.421 | 174 | 471 | 0.369 | 267 | 576 | 0.464 | 0.504 | 204 | 236 | 0.864 | 45 | 171 | 216 | 344 | 55 | 9 | 148 | 208 | 1260 | 0.550 | 0.089 | 0.004 | 0.150 | 0.024 | 0.065 | 0.076 | 15.366 | 4.195 | 2.634 |
| Ricky Rubio | PG | 28 | UTA | 14800000 | 68 | 67 | 1899 | 295 | 730 | 0.404 | 79 | 254 | 0.311 | 216 | 476 | 0.454 | 0.458 | 195 | 228 | 0.855 | 33 | 210 | 243 | 416 | 91 | 10 | 180 | 180 | 864 | 0.455 | 0.103 | 0.005 | 0.219 | 0.048 | 0.095 | 0.042 | 12.706 | 6.118 | 3.574 |
| Russell Westbrook | PG | 30 | OKC | 35665000 | 73 | 73 | 2630 | 630 | 1473 | 0.428 | 119 | 411 | 0.290 | 511 | 1062 | 0.481 | 0.468 | 296 | 451 | 0.656 | 109 | 698 | 807 | 784 | 142 | 33 | 325 | 245 | 1675 | 0.637 | 0.113 | 0.013 | 0.298 | 0.054 | 0.124 | 0.045 | 22.945 | 10.740 | 11.055 |
| Ryan Arcidiacono | PG | 24 | CHI | 1349383 | 81 | 32 | 1961 | 187 | 418 | 0.447 | 81 | 217 | 0.373 | 106 | 201 | 0.527 | 0.544 | 89 | 102 | 0.873 | 27 | 192 | 219 | 269 | 65 | 4 | 63 | 171 | 544 | 0.277 | 0.045 | 0.002 | 0.137 | 0.033 | 0.032 | 0.041 | 6.716 | 3.321 | 2.704 |
| Shabazz Napier | PG | 27 | BRK | 1942422 | 56 | 2 | 983 | 169 | 435 | 0.389 | 76 | 228 | 0.333 | 93 | 207 | 0.449 | 0.476 | 115 | 138 | 0.833 | 18 | 82 | 100 | 143 | 41 | 16 | 66 | 67 | 529 | 0.538 | 0.117 | 0.016 | 0.145 | 0.042 | 0.067 | 0.077 | 9.446 | 2.554 | 1.786 |
| Shai Gilgeous-Alexander | PG | 20 | LAC | 3375360 | 82 | 73 | 2174 | 341 | 716 | 0.476 | 51 | 139 | 0.367 | 290 | 577 | 0.503 | 0.512 | 156 | 195 | 0.800 | 57 | 175 | 232 | 270 | 96 | 45 | 141 | 175 | 889 | 0.409 | 0.072 | 0.021 | 0.124 | 0.044 | 0.065 | 0.023 | 10.841 | 3.293 | 2.829 |
| Shaquille Harrison | PG | 25 | CHI | 1325531 | 73 | 11 | 1430 | 184 | 426 | 0.432 | 24 | 89 | 0.270 | 160 | 337 | 0.475 | 0.460 | 82 | 123 | 0.667 | 33 | 189 | 222 | 139 | 89 | 30 | 60 | 124 | 474 | 0.331 | 0.057 | 0.021 | 0.097 | 0.062 | 0.042 | 0.017 | 6.493 | 1.904 | 3.041 |
| Shaun Livingston | PG | 33 | GSW | 8307692 | 64 | 0 | 967 | 109 | 210 | 0.519 | 0 | 2 | 0.000 | 109 | 208 | 0.524 | 0.519 | 40 | 51 | 0.784 | 42 | 75 | 117 | 114 | 31 | 27 | 38 | 74 | 258 | 0.267 | 0.041 | 0.028 | 0.118 | 0.032 | 0.039 | 0.000 | 4.031 | 1.781 | 1.828 |
| Shelvin Mack | PG | 28 | TOT | 2512601 | 57 | 3 | 1246 | 163 | 403 | 0.404 | 46 | 130 | 0.354 | 117 | 273 | 0.429 | 0.462 | 58 | 84 | 0.690 | 18 | 86 | 104 | 183 | 47 | 4 | 66 | 84 | 430 | 0.345 | 0.047 | 0.003 | 0.147 | 0.038 | 0.053 | 0.037 | 7.544 | 3.211 | 1.825 |
| Spencer Dinwiddie | PG | 25 | BRK | 1656092 | 68 | 4 | 1914 | 366 | 828 | 0.442 | 124 | 370 | 0.335 | 242 | 458 | 0.528 | 0.517 | 287 | 356 | 0.806 | 26 | 140 | 166 | 311 | 40 | 17 | 152 | 187 | 1143 | 0.597 | 0.150 | 0.009 | 0.162 | 0.021 | 0.079 | 0.065 | 16.809 | 4.574 | 2.441 |
| Stephen Curry | PG | 30 | GSW | 37457154 | 69 | 69 | 2331 | 632 | 1340 | 0.472 | 354 | 810 | 0.437 | 278 | 530 | 0.525 | 0.604 | 263 | 287 | 0.916 | 45 | 324 | 369 | 361 | 92 | 25 | 192 | 166 | 1881 | 0.807 | 0.113 | 0.011 | 0.155 | 0.039 | 0.082 | 0.152 | 27.261 | 5.232 | 5.348 |
| Terry Rozier | PG | 24 | BOS | 3050389 | 79 | 14 | 1791 | 258 | 666 | 0.387 | 119 | 337 | 0.353 | 139 | 329 | 0.422 | 0.477 | 73 | 93 | 0.785 | 32 | 275 | 307 | 231 | 68 | 21 | 68 | 101 | 708 | 0.395 | 0.041 | 0.012 | 0.129 | 0.038 | 0.038 | 0.066 | 8.962 | 2.924 | 3.886 |
| Tim Frazier | PG | 28 | TOT | 1832107 | 59 | 19 | 1120 | 116 | 261 | 0.444 | 37 | 101 | 0.366 | 79 | 160 | 0.494 | 0.515 | 41 | 54 | 0.759 | 41 | 127 | 168 | 248 | 30 | 5 | 76 | 112 | 310 | 0.277 | 0.037 | 0.004 | 0.221 | 0.027 | 0.068 | 0.033 | 5.254 | 4.203 | 2.847 |
| Tony Parker | PG | 36 | CHO | 5000000 | 56 | 0 | 1003 | 213 | 463 | 0.460 | 13 | 51 | 0.255 | 200 | 412 | 0.485 | 0.474 | 91 | 124 | 0.734 | 14 | 69 | 83 | 207 | 21 | 7 | 75 | 53 | 530 | 0.528 | 0.091 | 0.007 | 0.206 | 0.021 | 0.075 | 0.013 | 9.464 | 3.696 | 1.482 |
| Trae Young | PG | 20 | ATL | 5363280 | 81 | 81 | 2503 | 525 | 1256 | 0.418 | 156 | 482 | 0.324 | 369 | 774 | 0.477 | 0.480 | 343 | 414 | 0.829 | 64 | 237 | 301 | 653 | 72 | 15 | 308 | 140 | 1549 | 0.619 | 0.137 | 0.006 | 0.261 | 0.029 | 0.123 | 0.062 | 19.123 | 8.062 | 3.716 |
| Trey Burke | PG | 26 | TOT | 1795015 | 58 | 8 | 1125 | 236 | 548 | 0.431 | 56 | 159 | 0.352 | 180 | 389 | 0.463 | 0.482 | 103 | 124 | 0.831 | 28 | 71 | 99 | 159 | 33 | 7 | 49 | 58 | 631 | 0.561 | 0.092 | 0.006 | 0.141 | 0.029 | 0.044 | 0.050 | 10.879 | 2.741 | 1.707 |
| Tyler Johnson | PG | 26 | TOT | 19245370 | 57 | 22 | 1529 | 217 | 526 | 0.413 | 90 | 260 | 0.346 | 127 | 266 | 0.477 | 0.498 | 95 | 127 | 0.748 | 34 | 139 | 173 | 166 | 54 | 27 | 77 | 97 | 619 | 0.405 | 0.062 | 0.018 | 0.109 | 0.035 | 0.050 | 0.059 | 10.860 | 2.912 | 3.035 |
| Tyrone Wallace | PG | 24 | LAC | 1349383 | 62 | 0 | 628 | 92 | 217 | 0.424 | 4 | 19 | 0.211 | 88 | 198 | 0.444 | 0.433 | 30 | 57 | 0.526 | 20 | 81 | 101 | 42 | 21 | 7 | 36 | 83 | 218 | 0.347 | 0.048 | 0.011 | 0.067 | 0.033 | 0.057 | 0.006 | 3.516 | 0.677 | 1.629 |
| Tyus Jones | PG | 22 | MIN | 2444052 | 68 | 23 | 1560 | 185 | 446 | 0.415 | 40 | 126 | 0.317 | 145 | 320 | 0.453 | 0.460 | 58 | 69 | 0.841 | 23 | 111 | 134 | 327 | 81 | 5 | 47 | 78 | 468 | 0.300 | 0.037 | 0.003 | 0.210 | 0.052 | 0.030 | 0.026 | 6.882 | 4.809 | 1.971 |
| Yogi Ferrell | PG | 25 | SAC | 3000000 | 71 | 3 | 1067 | 153 | 352 | 0.435 | 54 | 149 | 0.362 | 99 | 203 | 0.488 | 0.511 | 60 | 67 | 0.896 | 13 | 96 | 109 | 137 | 36 | 4 | 40 | 64 | 420 | 0.394 | 0.056 | 0.004 | 0.128 | 0.034 | 0.037 | 0.051 | 5.915 | 1.930 | 1.535 |
| Abdel Nader | SF | 25 | OKC | 1378242 | 61 | 1 | 694 | 91 | 215 | 0.423 | 32 | 100 | 0.320 | 59 | 115 | 0.513 | 0.498 | 27 | 36 | 0.750 | 14 | 102 | 116 | 20 | 20 | 12 | 26 | 68 | 241 | 0.347 | 0.039 | 0.017 | 0.029 | 0.029 | 0.037 | 0.046 | 3.951 | 0.328 | 1.902 |
| Alfonzo McKinnie | SF | 26 | GSW | 1349383 | 72 | 5 | 1003 | 134 | 275 | 0.487 | 42 | 118 | 0.356 | 92 | 157 | 0.586 | 0.564 | 27 | 48 | 0.563 | 81 | 166 | 247 | 31 | 18 | 15 | 30 | 134 | 337 | 0.336 | 0.027 | 0.015 | 0.031 | 0.018 | 0.030 | 0.042 | 4.681 | 0.431 | 3.431 |
| Andre Iguodala | SF | 35 | GSW | 16000000 | 68 | 13 | 1578 | 151 | 302 | 0.500 | 48 | 144 | 0.333 | 103 | 158 | 0.652 | 0.579 | 39 | 67 | 0.582 | 48 | 204 | 252 | 216 | 61 | 51 | 52 | 95 | 389 | 0.247 | 0.025 | 0.032 | 0.137 | 0.039 | 0.033 | 0.030 | 5.721 | 3.176 | 3.706 |
| Andrew Wiggins | SF | 23 | MIN | 25467250 | 73 | 73 | 2543 | 498 | 1209 | 0.412 | 118 | 348 | 0.339 | 380 | 861 | 0.441 | 0.461 | 207 | 296 | 0.699 | 83 | 269 | 352 | 184 | 70 | 48 | 138 | 153 | 1321 | 0.519 | 0.081 | 0.019 | 0.072 | 0.028 | 0.054 | 0.046 | 18.096 | 2.521 | 4.822 |
| Brandon Ingram | SF | 21 | LAL | 5757120 | 52 | 52 | 1760 | 362 | 729 | 0.497 | 31 | 94 | 0.330 | 331 | 635 | 0.521 | 0.518 | 195 | 289 | 0.675 | 41 | 226 | 267 | 154 | 28 | 31 | 129 | 149 | 950 | 0.540 | 0.111 | 0.018 | 0.088 | 0.016 | 0.073 | 0.018 | 18.269 | 2.962 | 5.135 |
| Bruno Caboclo | SF | 23 | MEM | 705361 | 34 | 19 | 800 | 96 | 225 | 0.427 | 48 | 130 | 0.369 | 48 | 95 | 0.505 | 0.533 | 42 | 50 | 0.840 | 42 | 116 | 158 | 50 | 14 | 33 | 38 | 81 | 282 | 0.352 | 0.052 | 0.041 | 0.062 | 0.018 | 0.048 | 0.060 | 8.294 | 1.471 | 4.647 |
| Caris LeVert | SF | 24 | BRK | 1702800 | 40 | 25 | 1063 | 207 | 483 | 0.429 | 48 | 154 | 0.312 | 159 | 329 | 0.483 | 0.478 | 85 | 123 | 0.691 | 35 | 116 | 151 | 156 | 42 | 14 | 69 | 77 | 547 | 0.515 | 0.080 | 0.013 | 0.147 | 0.040 | 0.065 | 0.045 | 13.675 | 3.900 | 3.775 |
| Cedi Osman | SF | 23 | CLE | 2775000 | 76 | 75 | 2444 | 360 | 844 | 0.427 | 130 | 374 | 0.348 | 230 | 470 | 0.489 | 0.504 | 141 | 181 | 0.779 | 45 | 312 | 357 | 195 | 60 | 11 | 114 | 195 | 991 | 0.405 | 0.058 | 0.005 | 0.080 | 0.025 | 0.047 | 0.053 | 13.039 | 2.566 | 4.697 |
| Chandler Hutchison | SF | 22 | CHI | 1991520 | 44 | 14 | 895 | 96 | 209 | 0.459 | 14 | 50 | 0.280 | 82 | 159 | 0.516 | 0.493 | 23 | 38 | 0.605 | 31 | 154 | 185 | 34 | 23 | 6 | 25 | 59 | 229 | 0.256 | 0.026 | 0.007 | 0.038 | 0.026 | 0.028 | 0.016 | 5.205 | 0.773 | 4.205 |
| Chandler Parsons | SF | 30 | MEM | 24107258 | 25 | 3 | 496 | 68 | 182 | 0.374 | 29 | 94 | 0.309 | 39 | 88 | 0.443 | 0.453 | 22 | 25 | 0.880 | 4 | 66 | 70 | 43 | 19 | 5 | 32 | 45 | 187 | 0.377 | 0.044 | 0.010 | 0.087 | 0.038 | 0.065 | 0.058 | 7.480 | 1.720 | 2.800 |
| Corey Brewer | SF | 32 | TOT | 2559925 | 31 | 3 | 492 | 53 | 123 | 0.431 | 14 | 44 | 0.318 | 39 | 79 | 0.494 | 0.488 | 31 | 43 | 0.721 | 26 | 50 | 76 | 39 | 32 | 7 | 19 | 63 | 151 | 0.307 | 0.063 | 0.014 | 0.079 | 0.065 | 0.039 | 0.028 | 4.871 | 1.258 | 2.452 |
| Danilo Gallinari | SF | 30 | LAC | 21587579 | 68 | 68 | 2059 | 409 | 884 | 0.463 | 161 | 372 | 0.433 | 248 | 512 | 0.484 | 0.554 | 367 | 406 | 0.904 | 54 | 363 | 417 | 178 | 49 | 23 | 99 | 129 | 1346 | 0.654 | 0.178 | 0.011 | 0.086 | 0.024 | 0.048 | 0.078 | 19.794 | 2.618 | 6.132 |
| Danuel House | SF | 25 | HOU | 247827 | 39 | 13 | 979 | 118 | 252 | 0.468 | 74 | 178 | 0.416 | 44 | 74 | 0.595 | 0.615 | 56 | 71 | 0.789 | 25 | 115 | 140 | 40 | 21 | 11 | 35 | 80 | 366 | 0.374 | 0.057 | 0.011 | 0.041 | 0.021 | 0.036 | 0.076 | 9.385 | 1.026 | 3.590 |
| Darius Miller | SF | 28 | NOP | 2205000 | 69 | 15 | 1757 | 189 | 484 | 0.390 | 133 | 364 | 0.365 | 56 | 120 | 0.467 | 0.528 | 56 | 71 | 0.789 | 14 | 114 | 128 | 146 | 40 | 23 | 59 | 165 | 567 | 0.323 | 0.032 | 0.013 | 0.083 | 0.023 | 0.034 | 0.076 | 8.217 | 2.116 | 1.855 |
| Derrick Jones | SF | 21 | MIA | 1512601 | 60 | 14 | 1153 | 160 | 324 | 0.494 | 28 | 91 | 0.308 | 132 | 233 | 0.567 | 0.537 | 74 | 122 | 0.607 | 96 | 144 | 240 | 37 | 46 | 42 | 43 | 123 | 422 | 0.366 | 0.064 | 0.036 | 0.032 | 0.040 | 0.037 | 0.024 | 7.033 | 0.617 | 4.000 |
| Dorian Finney-Smith | SF | 25 | DAL | 1544951 | 81 | 26 | 1985 | 228 | 528 | 0.432 | 79 | 254 | 0.311 | 149 | 274 | 0.544 | 0.507 | 73 | 103 | 0.709 | 138 | 251 | 389 | 95 | 69 | 36 | 74 | 186 | 608 | 0.306 | 0.037 | 0.018 | 0.048 | 0.035 | 0.037 | 0.040 | 7.506 | 1.173 | 4.802 |
| Doug McDermott | SF | 27 | IND | 7333334 | 77 | 1 | 1340 | 207 | 422 | 0.491 | 84 | 206 | 0.408 | 123 | 216 | 0.569 | 0.590 | 66 | 79 | 0.835 | 17 | 92 | 109 | 67 | 18 | 8 | 42 | 104 | 564 | 0.421 | 0.049 | 0.006 | 0.050 | 0.013 | 0.031 | 0.063 | 7.325 | 0.870 | 1.416 |
| Glenn Robinson | SF | 25 | DET | 4075000 | 47 | 18 | 610 | 74 | 176 | 0.420 | 18 | 62 | 0.290 | 56 | 114 | 0.491 | 0.472 | 32 | 40 | 0.800 | 17 | 54 | 71 | 21 | 14 | 8 | 18 | 45 | 198 | 0.325 | 0.052 | 0.013 | 0.034 | 0.023 | 0.030 | 0.030 | 4.213 | 0.447 | 1.511 |
| Jae Crowder | SF | 28 | UTA | 7305825 | 80 | 11 | 2166 | 318 | 797 | 0.399 | 173 | 522 | 0.331 | 145 | 275 | 0.527 | 0.508 | 142 | 197 | 0.721 | 60 | 324 | 384 | 133 | 64 | 31 | 85 | 170 | 951 | 0.439 | 0.066 | 0.014 | 0.061 | 0.030 | 0.039 | 0.080 | 11.887 | 1.663 | 4.800 |
| Jake Layman | SF | 24 | POR | 1544951 | 71 | 33 | 1327 | 216 | 424 | 0.509 | 59 | 181 | 0.326 | 157 | 243 | 0.646 | 0.579 | 50 | 71 | 0.704 | 56 | 161 | 217 | 53 | 31 | 30 | 46 | 116 | 541 | 0.408 | 0.038 | 0.023 | 0.040 | 0.023 | 0.035 | 0.044 | 7.620 | 0.746 | 3.056 |
| James Ennis | SF | 28 | TOT | 1621415 | 58 | 27 | 1230 | 138 | 294 | 0.469 | 55 | 156 | 0.353 | 83 | 138 | 0.601 | 0.563 | 58 | 81 | 0.716 | 60 | 122 | 182 | 41 | 41 | 23 | 34 | 150 | 389 | 0.316 | 0.047 | 0.019 | 0.033 | 0.033 | 0.028 | 0.045 | 6.707 | 0.707 | 3.138 |
| Jaron Blossomgame | SF | 25 | CLE | 77250 | 27 | 4 | 439 | 47 | 106 | 0.443 | 10 | 39 | 0.256 | 37 | 67 | 0.552 | 0.491 | 10 | 13 | 0.769 | 26 | 72 | 98 | 13 | 7 | 8 | 11 | 20 | 114 | 0.260 | 0.023 | 0.018 | 0.030 | 0.016 | 0.025 | 0.023 | 4.222 | 0.481 | 3.630 |
| Jayson Tatum | SF | 20 | BOS | 6700800 | 79 | 79 | 2455 | 466 | 1036 | 0.450 | 116 | 311 | 0.373 | 350 | 725 | 0.483 | 0.506 | 195 | 228 | 0.855 | 70 | 407 | 477 | 168 | 84 | 57 | 122 | 168 | 1243 | 0.506 | 0.079 | 0.023 | 0.068 | 0.034 | 0.050 | 0.047 | 15.734 | 2.127 | 6.038 |
| Justin Anderson | SF | 25 | ATL | 2516047 | 48 | 4 | 463 | 64 | 157 | 0.408 | 24 | 77 | 0.312 | 40 | 80 | 0.500 | 0.484 | 26 | 35 | 0.743 | 24 | 60 | 84 | 23 | 22 | 13 | 23 | 48 | 178 | 0.384 | 0.056 | 0.028 | 0.050 | 0.048 | 0.050 | 0.052 | 3.708 | 0.479 | 1.750 |
| Justin Jackson | SF | 23 | TOT | 2807880 | 81 | 14 | 1614 | 217 | 485 | 0.447 | 87 | 245 | 0.355 | 130 | 240 | 0.542 | 0.537 | 62 | 79 | 0.785 | 44 | 168 | 212 | 96 | 32 | 14 | 29 | 99 | 583 | 0.361 | 0.038 | 0.009 | 0.059 | 0.020 | 0.018 | 0.054 | 7.198 | 1.185 | 2.617 |
| Justise Winslow | SF | 22 | MIA | 3448926 | 66 | 52 | 1959 | 324 | 749 | 0.433 | 96 | 256 | 0.375 | 228 | 493 | 0.462 | 0.497 | 86 | 137 | 0.628 | 63 | 292 | 355 | 282 | 72 | 19 | 142 | 177 | 830 | 0.424 | 0.044 | 0.010 | 0.144 | 0.037 | 0.072 | 0.049 | 12.576 | 4.273 | 5.379 |
| Kawhi Leonard | SF | 27 | TOR | 23114066 | 60 | 60 | 2040 | 560 | 1129 | 0.496 | 112 | 302 | 0.371 | 448 | 827 | 0.542 | 0.546 | 364 | 426 | 0.854 | 78 | 361 | 439 | 199 | 106 | 24 | 121 | 87 | 1596 | 0.782 | 0.178 | 0.012 | 0.098 | 0.052 | 0.059 | 0.055 | 26.600 | 3.317 | 7.317 |
| Keita Bates-Diop | SF | 23 | MIN | 838464 | 30 | 3 | 503 | 60 | 142 | 0.423 | 13 | 52 | 0.250 | 47 | 90 | 0.522 | 0.468 | 18 | 28 | 0.643 | 16 | 67 | 83 | 17 | 18 | 14 | 14 | 29 | 151 | 0.300 | 0.036 | 0.028 | 0.034 | 0.036 | 0.028 | 0.026 | 5.033 | 0.567 | 2.767 |
| Kelly Oubre | SF | 23 | TOT | 3208630 | 69 | 19 | 1935 | 375 | 842 | 0.445 | 108 | 338 | 0.320 | 267 | 504 | 0.530 | 0.510 | 189 | 244 | 0.775 | 71 | 254 | 325 | 84 | 84 | 59 | 103 | 181 | 1047 | 0.541 | 0.098 | 0.030 | 0.043 | 0.043 | 0.053 | 0.056 | 15.174 | 1.217 | 4.710 |
| Kenrich Williams | SF | 24 | NOP | 838464 | 46 | 29 | 1079 | 107 | 279 | 0.384 | 52 | 156 | 0.333 | 55 | 123 | 0.447 | 0.477 | 13 | 19 | 0.684 | 55 | 164 | 219 | 83 | 45 | 19 | 36 | 95 | 279 | 0.259 | 0.012 | 0.018 | 0.077 | 0.042 | 0.033 | 0.048 | 6.065 | 1.804 | 4.761 |
| Kevin Durant | SF | 30 | GSW | 30000000 | 78 | 78 | 2702 | 721 | 1383 | 0.521 | 137 | 388 | 0.353 | 584 | 995 | 0.587 | 0.571 | 448 | 506 | 0.885 | 33 | 464 | 497 | 457 | 58 | 84 | 225 | 155 | 2027 | 0.750 | 0.166 | 0.031 | 0.169 | 0.021 | 0.083 | 0.051 | 25.987 | 5.859 | 6.372 |
| Khris Middleton | SF | 27 | MIL | 13000000 | 77 | 77 | 2393 | 506 | 1148 | 0.441 | 179 | 474 | 0.378 | 327 | 674 | 0.485 | 0.519 | 216 | 258 | 0.837 | 50 | 411 | 461 | 331 | 80 | 7 | 174 | 172 | 1407 | 0.588 | 0.090 | 0.003 | 0.138 | 0.033 | 0.073 | 0.075 | 18.273 | 4.299 | 5.987 |
| Kyle Anderson | SF | 25 | MEM | 8641000 | 43 | 40 | 1281 | 150 | 276 | 0.543 | 9 | 34 | 0.265 | 141 | 242 | 0.583 | 0.560 | 37 | 64 | 0.578 | 48 | 203 | 251 | 128 | 54 | 37 | 58 | 112 | 346 | 0.270 | 0.029 | 0.029 | 0.100 | 0.042 | 0.045 | 0.007 | 8.047 | 2.977 | 5.837 |
| LeBron James | SF | 34 | LAL | 35654150 | 55 | 55 | 1937 | 558 | 1095 | 0.510 | 111 | 327 | 0.339 | 447 | 768 | 0.582 | 0.560 | 278 | 418 | 0.665 | 57 | 408 | 465 | 454 | 72 | 33 | 197 | 94 | 1505 | 0.777 | 0.144 | 0.017 | 0.234 | 0.037 | 0.102 | 0.057 | 27.364 | 8.255 | 8.455 |
| Luol Deng | SF | 33 | MIN | 16747954 | 22 | 2 | 392 | 59 | 118 | 0.500 | 14 | 44 | 0.318 | 45 | 74 | 0.608 | 0.559 | 25 | 35 | 0.714 | 20 | 53 | 73 | 18 | 15 | 8 | 14 | 24 | 157 | 0.401 | 0.064 | 0.020 | 0.046 | 0.038 | 0.036 | 0.036 | 7.136 | 0.818 | 3.318 |
| Mario Hezonja | SF | 23 | NYK | 6500000 | 58 | 24 | 1206 | 191 | 464 | 0.412 | 42 | 152 | 0.276 | 149 | 312 | 0.478 | 0.457 | 87 | 114 | 0.763 | 28 | 211 | 239 | 88 | 57 | 8 | 88 | 110 | 511 | 0.424 | 0.072 | 0.007 | 0.073 | 0.047 | 0.073 | 0.035 | 8.810 | 1.517 | 4.121 |
| Mikal Bridges | SF | 22 | PHO | 3557400 | 82 | 56 | 2417 | 242 | 563 | 0.430 | 105 | 313 | 0.335 | 137 | 250 | 0.548 | 0.523 | 95 | 118 | 0.805 | 56 | 208 | 264 | 173 | 129 | 38 | 70 | 201 | 684 | 0.283 | 0.039 | 0.016 | 0.072 | 0.053 | 0.029 | 0.043 | 8.341 | 2.110 | 3.220 |
| Miles Bridges | SF | 20 | CHO | 3206640 | 80 | 25 | 1696 | 237 | 511 | 0.464 | 65 | 200 | 0.325 | 172 | 311 | 0.553 | 0.527 | 58 | 77 | 0.753 | 67 | 256 | 323 | 95 | 55 | 49 | 50 | 111 | 597 | 0.352 | 0.034 | 0.029 | 0.056 | 0.032 | 0.029 | 0.038 | 7.463 | 1.188 | 4.037 |
| Nicolas Batum | SF | 30 | CHO | 24000000 | 75 | 72 | 2354 | 253 | 562 | 0.450 | 116 | 298 | 0.389 | 137 | 264 | 0.519 | 0.553 | 77 | 89 | 0.865 | 71 | 319 | 390 | 247 | 71 | 43 | 117 | 140 | 699 | 0.297 | 0.033 | 0.018 | 0.105 | 0.030 | 0.050 | 0.049 | 9.320 | 3.293 | 5.200 |
| OG Anunoby | SF | 21 | TOR | 1952760 | 67 | 6 | 1352 | 183 | 404 | 0.453 | 67 | 202 | 0.332 | 116 | 202 | 0.574 | 0.536 | 36 | 62 | 0.581 | 58 | 139 | 197 | 47 | 46 | 22 | 55 | 140 | 469 | 0.347 | 0.027 | 0.016 | 0.035 | 0.034 | 0.041 | 0.050 | 7.000 | 0.701 | 2.940 |
| Omri Casspi | SF | 30 | MEM | 2176260 | 36 | 0 | 520 | 86 | 161 | 0.534 | 15 | 43 | 0.349 | 71 | 118 | 0.602 | 0.581 | 39 | 58 | 0.672 | 17 | 98 | 115 | 26 | 20 | 9 | 23 | 35 | 226 | 0.435 | 0.075 | 0.017 | 0.050 | 0.038 | 0.044 | 0.029 | 6.278 | 0.722 | 3.194 |
| Otto Porter | SF | 25 | TOT | 26011913 | 56 | 43 | 1683 | 299 | 643 | 0.465 | 104 | 256 | 0.406 | 195 | 387 | 0.504 | 0.546 | 78 | 96 | 0.813 | 54 | 260 | 314 | 120 | 82 | 31 | 65 | 108 | 780 | 0.463 | 0.046 | 0.018 | 0.071 | 0.049 | 0.039 | 0.062 | 13.929 | 2.143 | 5.607 |
| Paul George | SF | 28 | OKC | 30560700 | 77 | 77 | 2841 | 707 | 1614 | 0.438 | 292 | 757 | 0.386 | 415 | 857 | 0.484 | 0.529 | 453 | 540 | 0.839 | 105 | 523 | 628 | 318 | 170 | 34 | 205 | 214 | 2159 | 0.760 | 0.159 | 0.012 | 0.112 | 0.060 | 0.072 | 0.103 | 28.039 | 4.130 | 8.156 |
| Quincy Pondexter | SF | 30 | SAS | 2165481 | 53 | 0 | 292 | 29 | 58 | 0.500 | 6 | 18 | 0.333 | 23 | 40 | 0.575 | 0.552 | 34 | 42 | 0.810 | 8 | 38 | 46 | 24 | 11 | 1 | 13 | 24 | 98 | 0.336 | 0.116 | 0.003 | 0.082 | 0.038 | 0.045 | 0.021 | 1.849 | 0.453 | 0.868 |
| Robert Covington | SF | 28 | TOT | 10464092 | 35 | 35 | 1203 | 156 | 362 | 0.431 | 85 | 225 | 0.378 | 71 | 137 | 0.518 | 0.548 | 68 | 89 | 0.764 | 28 | 165 | 193 | 46 | 74 | 47 | 47 | 126 | 465 | 0.387 | 0.057 | 0.039 | 0.038 | 0.062 | 0.039 | 0.071 | 13.286 | 1.314 | 5.514 |
| Rodions Kurucs | SF | 20 | BRK | 1690000 | 63 | 46 | 1294 | 202 | 449 | 0.450 | 58 | 184 | 0.315 | 144 | 265 | 0.543 | 0.514 | 72 | 92 | 0.783 | 56 | 190 | 246 | 52 | 41 | 25 | 77 | 146 | 534 | 0.413 | 0.056 | 0.019 | 0.040 | 0.032 | 0.060 | 0.045 | 8.476 | 0.825 | 3.905 |
| Rondae Hollis-Jefferson | SF | 24 | BRK | 2470356 | 59 | 21 | 1234 | 200 | 487 | 0.411 | 9 | 49 | 0.184 | 191 | 438 | 0.436 | 0.420 | 118 | 183 | 0.645 | 83 | 227 | 310 | 96 | 44 | 27 | 68 | 107 | 527 | 0.427 | 0.096 | 0.022 | 0.078 | 0.036 | 0.055 | 0.007 | 8.932 | 1.627 | 5.254 |
| Royce O’Neale | SF | 25 | UTA | 1378242 | 82 | 16 | 1671 | 163 | 343 | 0.475 | 68 | 176 | 0.386 | 95 | 167 | 0.569 | 0.574 | 32 | 42 | 0.762 | 22 | 263 | 285 | 124 | 54 | 24 | 70 | 172 | 426 | 0.255 | 0.019 | 0.014 | 0.074 | 0.032 | 0.042 | 0.041 | 5.195 | 1.512 | 3.476 |
| Solomon Hill | SF | 27 | NOP | 12763467 | 44 | 15 | 878 | 68 | 178 | 0.382 | 32 | 101 | 0.317 | 36 | 77 | 0.468 | 0.472 | 23 | 32 | 0.719 | 34 | 99 | 133 | 55 | 23 | 10 | 31 | 80 | 191 | 0.218 | 0.026 | 0.011 | 0.063 | 0.026 | 0.035 | 0.036 | 4.341 | 1.250 | 3.023 |
| Stanley Johnson | SF | 22 | TOT | 3940401 | 66 | 7 | 1208 | 171 | 440 | 0.389 | 62 | 215 | 0.288 | 109 | 225 | 0.484 | 0.459 | 50 | 64 | 0.781 | 34 | 183 | 217 | 88 | 60 | 14 | 81 | 114 | 454 | 0.376 | 0.041 | 0.012 | 0.073 | 0.050 | 0.067 | 0.051 | 6.879 | 1.333 | 3.288 |
| Sviatoslav Mykhailiuk | SF | 21 | TOT | 1487694 | 42 | 0 | 440 | 46 | 140 | 0.329 | 29 | 89 | 0.326 | 17 | 51 | 0.333 | 0.432 | 12 | 20 | 0.600 | 9 | 27 | 36 | 37 | 14 | 1 | 21 | 25 | 133 | 0.302 | 0.027 | 0.002 | 0.084 | 0.032 | 0.048 | 0.066 | 3.167 | 0.881 | 0.857 |
| Thabo Sefolosha | SF | 34 | UTA | 5250000 | 50 | 2 | 609 | 71 | 149 | 0.477 | 34 | 78 | 0.436 | 37 | 71 | 0.521 | 0.591 | 14 | 22 | 0.636 | 8 | 115 | 123 | 27 | 43 | 5 | 25 | 41 | 190 | 0.312 | 0.023 | 0.008 | 0.044 | 0.071 | 0.041 | 0.056 | 3.800 | 0.540 | 2.460 |
| Tony Snell | SF | 27 | MIL | 10607143 | 74 | 12 | 1304 | 163 | 361 | 0.452 | 81 | 204 | 0.397 | 82 | 157 | 0.522 | 0.564 | 37 | 42 | 0.881 | 29 | 128 | 157 | 68 | 26 | 18 | 23 | 90 | 444 | 0.340 | 0.028 | 0.014 | 0.052 | 0.020 | 0.018 | 0.062 | 6.000 | 0.919 | 2.122 |
| Torrey Craig | SF | 28 | DEN | 2000000 | 75 | 37 | 1503 | 160 | 362 | 0.442 | 61 | 188 | 0.324 | 99 | 174 | 0.569 | 0.526 | 49 | 70 | 0.700 | 89 | 174 | 263 | 72 | 37 | 46 | 44 | 175 | 430 | 0.286 | 0.033 | 0.031 | 0.048 | 0.025 | 0.029 | 0.041 | 5.733 | 0.960 | 3.507 |
| Trevor Ariza | SF | 33 | TOT | 15000000 | 69 | 69 | 2349 | 294 | 736 | 0.399 | 145 | 434 | 0.334 | 149 | 302 | 0.493 | 0.498 | 130 | 164 | 0.793 | 50 | 321 | 371 | 252 | 91 | 21 | 106 | 130 | 863 | 0.367 | 0.055 | 0.009 | 0.107 | 0.039 | 0.045 | 0.062 | 12.507 | 3.652 | 5.377 |
| Troy Brown | SF | 19 | WAS | 2752680 | 52 | 10 | 730 | 97 | 234 | 0.415 | 22 | 69 | 0.319 | 75 | 165 | 0.455 | 0.462 | 32 | 47 | 0.681 | 35 | 110 | 145 | 80 | 21 | 5 | 30 | 56 | 248 | 0.340 | 0.044 | 0.007 | 0.110 | 0.029 | 0.041 | 0.030 | 4.769 | 1.538 | 2.788 |
| Troy Williams | SF | 24 | SAC | 77250 | 21 | 0 | 312 | 44 | 98 | 0.449 | 14 | 44 | 0.318 | 30 | 54 | 0.556 | 0.520 | 9 | 15 | 0.600 | 12 | 47 | 59 | 11 | 10 | 8 | 9 | 37 | 111 | 0.356 | 0.029 | 0.026 | 0.035 | 0.032 | 0.029 | 0.045 | 5.286 | 0.524 | 2.810 |
| Wesley Iwundu | SF | 24 | ORL | 1378242 | 68 | 13 | 1233 | 113 | 274 | 0.412 | 29 | 79 | 0.367 | 84 | 195 | 0.431 | 0.465 | 84 | 103 | 0.816 | 37 | 147 | 184 | 73 | 28 | 22 | 44 | 123 | 339 | 0.275 | 0.068 | 0.018 | 0.059 | 0.023 | 0.036 | 0.024 | 4.985 | 1.074 | 2.706 |
| Wesley Johnson | SF | 31 | TOT | 6134000 | 38 | 13 | 534 | 45 | 128 | 0.352 | 25 | 76 | 0.329 | 20 | 52 | 0.385 | 0.449 | 13 | 19 | 0.684 | 12 | 60 | 72 | 23 | 14 | 12 | 18 | 63 | 128 | 0.240 | 0.024 | 0.022 | 0.043 | 0.026 | 0.034 | 0.047 | 3.368 | 0.605 | 1.895 |
| Jimmy Butler | SF-SG | 29 | TOT | 19841627 | 65 | 65 | 2185 | 418 | 904 | 0.462 | 67 | 193 | 0.347 | 351 | 711 | 0.494 | 0.499 | 312 | 365 | 0.855 | 121 | 221 | 342 | 263 | 123 | 39 | 95 | 111 | 1215 | 0.556 | 0.143 | 0.018 | 0.120 | 0.056 | 0.043 | 0.031 | 18.692 | 4.046 | 5.262 |
| Wesley Matthews | SF-SG | 32 | TOT | 19360228 | 69 | 68 | 2091 | 279 | 698 | 0.400 | 150 | 403 | 0.372 | 129 | 295 | 0.437 | 0.507 | 132 | 163 | 0.810 | 32 | 138 | 170 | 160 | 54 | 17 | 91 | 160 | 840 | 0.402 | 0.063 | 0.008 | 0.077 | 0.026 | 0.044 | 0.072 | 12.174 | 2.319 | 2.464 |
| Alec Burks | SG | 27 | TOT | 11536515 | 64 | 24 | 1375 | 192 | 474 | 0.405 | 61 | 168 | 0.363 | 131 | 306 | 0.428 | 0.469 | 116 | 141 | 0.823 | 30 | 205 | 235 | 128 | 39 | 21 | 65 | 91 | 561 | 0.408 | 0.084 | 0.015 | 0.093 | 0.028 | 0.047 | 0.044 | 8.766 | 2.000 | 3.672 |
| Alex Abrines | SG | 25 | OKC | 3667645 | 31 | 2 | 588 | 56 | 157 | 0.357 | 41 | 127 | 0.323 | 15 | 30 | 0.500 | 0.487 | 12 | 13 | 0.923 | 5 | 43 | 48 | 20 | 17 | 6 | 14 | 53 | 165 | 0.281 | 0.020 | 0.010 | 0.034 | 0.029 | 0.024 | 0.070 | 5.323 | 0.645 | 1.548 |
| Allen Crabbe | SG | 26 | BRK | 19332500 | 43 | 20 | 1133 | 137 | 373 | 0.367 | 98 | 259 | 0.378 | 39 | 114 | 0.342 | 0.499 | 41 | 56 | 0.732 | 16 | 132 | 148 | 46 | 23 | 13 | 46 | 102 | 413 | 0.365 | 0.036 | 0.011 | 0.041 | 0.020 | 0.041 | 0.086 | 9.605 | 1.070 | 3.442 |
| Allonzo Trier | SG | 23 | NYK | 3382000 | 64 | 3 | 1459 | 232 | 518 | 0.448 | 52 | 132 | 0.394 | 180 | 386 | 0.466 | 0.498 | 179 | 223 | 0.803 | 31 | 166 | 197 | 119 | 28 | 14 | 116 | 117 | 695 | 0.476 | 0.123 | 0.010 | 0.082 | 0.019 | 0.080 | 0.036 | 10.859 | 1.859 | 3.078 |
| Anfernee Simons | SG | 19 | POR | 1837800 | 20 | 1 | 141 | 28 | 63 | 0.444 | 10 | 29 | 0.345 | 18 | 34 | 0.529 | 0.524 | 9 | 16 | 0.563 | 3 | 10 | 13 | 13 | 1 | 0 | 11 | 9 | 75 | 0.532 | 0.064 | 0.000 | 0.092 | 0.007 | 0.078 | 0.071 | 3.750 | 0.650 | 0.650 |
| Antonio Blakeney | SG | 22 | CHI | 1349383 | 57 | 3 | 829 | 166 | 396 | 0.419 | 36 | 91 | 0.396 | 130 | 305 | 0.426 | 0.465 | 50 | 76 | 0.658 | 7 | 99 | 106 | 42 | 12 | 9 | 35 | 41 | 418 | 0.504 | 0.060 | 0.011 | 0.051 | 0.014 | 0.042 | 0.043 | 7.333 | 0.737 | 1.860 |
| Austin Rivers | SG | 26 | TOT | 13155324 | 76 | 15 | 2028 | 232 | 572 | 0.406 | 104 | 327 | 0.318 | 128 | 245 | 0.522 | 0.497 | 50 | 95 | 0.526 | 25 | 137 | 162 | 167 | 47 | 23 | 68 | 207 | 618 | 0.305 | 0.025 | 0.011 | 0.082 | 0.023 | 0.034 | 0.051 | 8.132 | 2.197 | 2.132 |
| Avery Bradley | SG | 28 | TOT | 12000000 | 63 | 63 | 1905 | 248 | 608 | 0.408 | 86 | 245 | 0.351 | 162 | 363 | 0.446 | 0.479 | 43 | 50 | 0.860 | 43 | 132 | 175 | 152 | 41 | 16 | 89 | 167 | 625 | 0.328 | 0.023 | 0.008 | 0.080 | 0.022 | 0.047 | 0.045 | 9.921 | 2.413 | 2.778 |
| Bradley Beal | SG | 25 | WAS | 25434262 | 82 | 82 | 3028 | 764 | 1609 | 0.475 | 209 | 596 | 0.351 | 555 | 1013 | 0.548 | 0.540 | 362 | 448 | 0.808 | 89 | 322 | 411 | 448 | 121 | 58 | 224 | 226 | 2099 | 0.693 | 0.120 | 0.019 | 0.148 | 0.040 | 0.074 | 0.069 | 25.598 | 5.463 | 5.012 |
| Bruce Brown | SG | 22 | DET | 838464 | 74 | 56 | 1449 | 125 | 314 | 0.398 | 24 | 93 | 0.258 | 101 | 221 | 0.457 | 0.436 | 45 | 60 | 0.750 | 48 | 137 | 185 | 91 | 40 | 36 | 46 | 178 | 319 | 0.220 | 0.031 | 0.025 | 0.063 | 0.028 | 0.032 | 0.017 | 4.311 | 1.230 | 2.500 |
| Bryn Forbes | SG | 25 | SAS | 3125000 | 82 | 81 | 2293 | 361 | 791 | 0.456 | 176 | 413 | 0.426 | 185 | 378 | 0.489 | 0.568 | 69 | 78 | 0.885 | 18 | 221 | 239 | 175 | 45 | 4 | 80 | 159 | 967 | 0.422 | 0.030 | 0.002 | 0.076 | 0.020 | 0.035 | 0.077 | 11.793 | 2.134 | 2.915 |
| Buddy Hield | SG | 26 | SAC | 3833760 | 82 | 82 | 2615 | 623 | 1360 | 0.458 | 278 | 651 | 0.427 | 345 | 709 | 0.487 | 0.560 | 171 | 193 | 0.886 | 106 | 306 | 412 | 205 | 58 | 33 | 146 | 202 | 1695 | 0.648 | 0.065 | 0.013 | 0.078 | 0.022 | 0.056 | 0.106 | 20.671 | 2.500 | 5.024 |
| CJ McCollum | SG | 27 | POR | 25759766 | 70 | 70 | 2375 | 571 | 1243 | 0.459 | 167 | 445 | 0.375 | 404 | 798 | 0.506 | 0.527 | 159 | 192 | 0.828 | 62 | 220 | 282 | 207 | 55 | 28 | 106 | 172 | 1468 | 0.618 | 0.067 | 0.012 | 0.087 | 0.023 | 0.045 | 0.070 | 20.971 | 2.957 | 4.029 |
| Courtney Lee | SG | 33 | TOT | 12253780 | 34 | 6 | 428 | 53 | 129 | 0.411 | 16 | 55 | 0.291 | 37 | 74 | 0.500 | 0.473 | 14 | 21 | 0.667 | 9 | 45 | 54 | 37 | 21 | 3 | 14 | 32 | 136 | 0.318 | 0.033 | 0.007 | 0.086 | 0.049 | 0.033 | 0.037 | 4.000 | 1.088 | 1.588 |
| Damion Lee | SG | 26 | GSW | 77250 | 32 | 0 | 375 | 56 | 127 | 0.441 | 27 | 68 | 0.397 | 29 | 59 | 0.492 | 0.547 | 19 | 22 | 0.864 | 8 | 56 | 64 | 13 | 13 | 0 | 11 | 28 | 158 | 0.421 | 0.051 | 0.000 | 0.035 | 0.035 | 0.029 | 0.072 | 4.938 | 0.406 | 2.000 |
| Damyean Dotson | SG | 24 | NYK | 1378242 | 73 | 40 | 2004 | 290 | 698 | 0.415 | 126 | 342 | 0.368 | 164 | 356 | 0.461 | 0.506 | 73 | 98 | 0.745 | 34 | 228 | 262 | 135 | 58 | 10 | 71 | 135 | 779 | 0.389 | 0.036 | 0.005 | 0.067 | 0.029 | 0.035 | 0.063 | 10.671 | 1.849 | 3.589 |
| Danny Green | SG | 31 | TOR | 10000000 | 80 | 80 | 2216 | 293 | 630 | 0.465 | 198 | 435 | 0.455 | 95 | 195 | 0.487 | 0.622 | 37 | 44 | 0.841 | 60 | 257 | 317 | 126 | 73 | 53 | 75 | 171 | 821 | 0.370 | 0.017 | 0.024 | 0.057 | 0.033 | 0.034 | 0.089 | 10.262 | 1.575 | 3.962 |
| David Nwaba | SG | 26 | CLE | 1512601 | 51 | 14 | 984 | 126 | 262 | 0.481 | 24 | 75 | 0.320 | 102 | 187 | 0.545 | 0.527 | 58 | 85 | 0.682 | 41 | 122 | 163 | 54 | 36 | 17 | 29 | 106 | 334 | 0.339 | 0.059 | 0.017 | 0.055 | 0.037 | 0.029 | 0.024 | 6.549 | 1.059 | 3.196 |
| DeMar DeRozan | SG | 29 | SAS | 27739975 | 77 | 77 | 2688 | 631 | 1313 | 0.481 | 7 | 45 | 0.156 | 624 | 1268 | 0.492 | 0.483 | 366 | 441 | 0.830 | 54 | 408 | 462 | 475 | 86 | 36 | 199 | 177 | 1635 | 0.608 | 0.136 | 0.013 | 0.177 | 0.032 | 0.074 | 0.003 | 21.234 | 6.169 | 6.000 |
| Deonte Burton | SG | 25 | OKC | 500000 | 32 | 0 | 240 | 33 | 82 | 0.402 | 8 | 27 | 0.296 | 25 | 55 | 0.455 | 0.451 | 8 | 12 | 0.667 | 4 | 24 | 28 | 9 | 6 | 8 | 9 | 31 | 82 | 0.342 | 0.033 | 0.033 | 0.038 | 0.025 | 0.038 | 0.033 | 2.562 | 0.281 | 0.875 |
| Devin Booker | SG | 22 | PHO | 3314365 | 64 | 64 | 2242 | 586 | 1255 | 0.467 | 135 | 414 | 0.326 | 451 | 841 | 0.536 | 0.521 | 393 | 454 | 0.866 | 39 | 226 | 265 | 433 | 56 | 13 | 264 | 200 | 1700 | 0.758 | 0.175 | 0.006 | 0.193 | 0.025 | 0.118 | 0.060 | 26.562 | 6.766 | 4.141 |
| Dion Waiters | SG | 27 | MIA | 12705000 | 44 | 28 | 1138 | 198 | 478 | 0.414 | 109 | 289 | 0.377 | 89 | 189 | 0.471 | 0.528 | 22 | 44 | 0.500 | 7 | 109 | 116 | 121 | 29 | 9 | 64 | 72 | 527 | 0.463 | 0.019 | 0.008 | 0.106 | 0.025 | 0.056 | 0.096 | 11.977 | 2.750 | 2.636 |
| Donovan Mitchell | SG | 22 | UTA | 3111480 | 77 | 77 | 2598 | 661 | 1530 | 0.432 | 188 | 519 | 0.362 | 473 | 1011 | 0.468 | 0.493 | 319 | 396 | 0.806 | 59 | 257 | 316 | 322 | 106 | 31 | 218 | 208 | 1829 | 0.704 | 0.123 | 0.012 | 0.124 | 0.041 | 0.084 | 0.072 | 23.753 | 4.182 | 4.104 |
| Donte DiVincenzo | SG | 22 | MIL | 2484360 | 27 | 0 | 411 | 50 | 124 | 0.403 | 22 | 83 | 0.265 | 28 | 41 | 0.683 | 0.492 | 9 | 12 | 0.750 | 16 | 49 | 65 | 31 | 13 | 6 | 19 | 38 | 131 | 0.319 | 0.022 | 0.015 | 0.075 | 0.032 | 0.046 | 0.054 | 4.852 | 1.148 | 2.407 |
| Dwayne Bacon | SG | 23 | CHO | 1378242 | 43 | 13 | 759 | 122 | 257 | 0.475 | 38 | 87 | 0.437 | 84 | 170 | 0.494 | 0.549 | 34 | 46 | 0.739 | 8 | 81 | 89 | 47 | 12 | 5 | 18 | 72 | 316 | 0.416 | 0.045 | 0.007 | 0.062 | 0.016 | 0.024 | 0.050 | 7.349 | 1.093 | 2.070 |
| Dwyane Wade | SG | 37 | MIA | 2393887 | 72 | 2 | 1885 | 416 | 960 | 0.433 | 86 | 261 | 0.330 | 330 | 699 | 0.472 | 0.478 | 165 | 233 | 0.708 | 69 | 216 | 285 | 301 | 59 | 38 | 166 | 118 | 1083 | 0.575 | 0.088 | 0.020 | 0.160 | 0.031 | 0.088 | 0.046 | 15.042 | 4.181 | 3.958 |
| E’Twaun Moore | SG | 29 | NOP | 8808685 | 53 | 36 | 1463 | 256 | 532 | 0.481 | 76 | 176 | 0.432 | 180 | 356 | 0.506 | 0.553 | 45 | 59 | 0.763 | 35 | 92 | 127 | 102 | 40 | 8 | 59 | 112 | 633 | 0.433 | 0.031 | 0.005 | 0.070 | 0.027 | 0.040 | 0.052 | 11.943 | 1.925 | 2.396 |
| Eric Gordon | SG | 30 | HOU | 13500375 | 68 | 53 | 2158 | 384 | 938 | 0.409 | 216 | 600 | 0.360 | 168 | 338 | 0.497 | 0.525 | 119 | 152 | 0.783 | 17 | 131 | 148 | 129 | 41 | 27 | 90 | 143 | 1103 | 0.511 | 0.055 | 0.013 | 0.060 | 0.019 | 0.042 | 0.100 | 16.221 | 1.897 | 2.176 |
| Evan Fournier | SG | 26 | ORL | 17000000 | 81 | 81 | 2553 | 468 | 1069 | 0.438 | 153 | 450 | 0.340 | 315 | 619 | 0.509 | 0.509 | 137 | 170 | 0.806 | 38 | 220 | 258 | 295 | 71 | 12 | 154 | 225 | 1226 | 0.480 | 0.054 | 0.005 | 0.116 | 0.028 | 0.060 | 0.060 | 15.136 | 3.642 | 3.185 |
| Furkan Korkmaz | SG | 21 | PHI | 1740000 | 48 | 7 | 679 | 98 | 245 | 0.400 | 47 | 144 | 0.326 | 51 | 101 | 0.505 | 0.496 | 36 | 44 | 0.818 | 16 | 91 | 107 | 52 | 29 | 2 | 25 | 62 | 279 | 0.411 | 0.053 | 0.003 | 0.077 | 0.043 | 0.037 | 0.069 | 5.812 | 1.083 | 2.229 |
| Garrett Temple | SG | 32 | TOT | 8000000 | 75 | 55 | 2040 | 208 | 493 | 0.422 | 90 | 264 | 0.341 | 118 | 229 | 0.515 | 0.513 | 80 | 107 | 0.748 | 28 | 188 | 216 | 106 | 76 | 30 | 70 | 204 | 586 | 0.287 | 0.039 | 0.015 | 0.052 | 0.037 | 0.034 | 0.044 | 7.813 | 1.413 | 2.880 |
| Gary Harris | SG | 24 | DEN | 16517857 | 57 | 48 | 1639 | 270 | 637 | 0.424 | 82 | 242 | 0.339 | 188 | 395 | 0.476 | 0.488 | 115 | 144 | 0.799 | 41 | 119 | 160 | 127 | 55 | 19 | 68 | 113 | 737 | 0.450 | 0.070 | 0.012 | 0.077 | 0.034 | 0.041 | 0.050 | 12.930 | 2.228 | 2.807 |
| Gerald Green | SG | 33 | HOU | 1512601 | 73 | 0 | 1473 | 231 | 578 | 0.400 | 156 | 441 | 0.354 | 75 | 137 | 0.547 | 0.535 | 57 | 68 | 0.838 | 30 | 152 | 182 | 40 | 33 | 27 | 55 | 126 | 675 | 0.458 | 0.039 | 0.018 | 0.027 | 0.022 | 0.037 | 0.106 | 9.247 | 0.548 | 2.493 |
| Grayson Allen | SG | 23 | UTA | 2076960 | 38 | 2 | 416 | 67 | 178 | 0.376 | 32 | 99 | 0.323 | 35 | 79 | 0.443 | 0.466 | 45 | 60 | 0.750 | 3 | 20 | 23 | 25 | 6 | 6 | 33 | 47 | 211 | 0.507 | 0.108 | 0.014 | 0.060 | 0.014 | 0.079 | 0.077 | 5.553 | 0.658 | 0.605 |
| Hamidou Diallo | SG | 20 | OKC | 838464 | 51 | 3 | 526 | 75 | 165 | 0.455 | 4 | 24 | 0.167 | 71 | 141 | 0.504 | 0.467 | 36 | 59 | 0.610 | 38 | 59 | 97 | 17 | 21 | 10 | 23 | 77 | 190 | 0.361 | 0.068 | 0.019 | 0.032 | 0.040 | 0.044 | 0.008 | 3.725 | 0.333 | 1.902 |
| Ian Clark | SG | 27 | NOP | 1757429 | 60 | 6 | 973 | 151 | 383 | 0.394 | 66 | 202 | 0.327 | 85 | 181 | 0.470 | 0.480 | 33 | 37 | 0.892 | 13 | 76 | 89 | 94 | 22 | 8 | 58 | 95 | 401 | 0.412 | 0.034 | 0.008 | 0.097 | 0.023 | 0.060 | 0.068 | 6.683 | 1.567 | 1.483 |
| Iman Shumpert | SG | 28 | TOT | 11011234 | 62 | 41 | 1481 | 167 | 446 | 0.374 | 95 | 273 | 0.348 | 72 | 173 | 0.416 | 0.481 | 36 | 45 | 0.800 | 27 | 156 | 183 | 112 | 59 | 24 | 50 | 127 | 465 | 0.314 | 0.024 | 0.016 | 0.076 | 0.040 | 0.034 | 0.064 | 7.500 | 1.806 | 2.952 |
| Jacob Evans | SG | 21 | GSW | 1646400 | 30 | 1 | 204 | 18 | 53 | 0.340 | 4 | 15 | 0.267 | 14 | 38 | 0.368 | 0.377 | 0 | 1 | 0.000 | 6 | 19 | 25 | 23 | 5 | 3 | 11 | 28 | 40 | 0.196 | 0.000 | 0.015 | 0.113 | 0.025 | 0.054 | 0.020 | 1.333 | 0.767 | 0.833 |
| Jamal Crawford | SG | 38 | PHO | 4698113 | 64 | 0 | 1211 | 174 | 438 | 0.397 | 67 | 202 | 0.332 | 107 | 236 | 0.453 | 0.474 | 93 | 110 | 0.845 | 8 | 77 | 85 | 229 | 33 | 12 | 99 | 75 | 508 | 0.419 | 0.077 | 0.010 | 0.189 | 0.027 | 0.082 | 0.055 | 7.938 | 3.578 | 1.328 |
| Jaylen Brown | SG | 22 | BOS | 5169960 | 74 | 25 | 1913 | 368 | 792 | 0.465 | 95 | 276 | 0.344 | 273 | 516 | 0.529 | 0.525 | 133 | 202 | 0.658 | 65 | 248 | 313 | 100 | 69 | 32 | 99 | 186 | 964 | 0.504 | 0.070 | 0.017 | 0.052 | 0.036 | 0.052 | 0.050 | 13.027 | 1.351 | 4.230 |
| Jeremy Lamb | SG | 26 | CHO | 7000000 | 79 | 55 | 2250 | 431 | 979 | 0.440 | 115 | 330 | 0.348 | 316 | 649 | 0.487 | 0.499 | 231 | 260 | 0.888 | 65 | 369 | 434 | 172 | 88 | 32 | 80 | 140 | 1208 | 0.537 | 0.103 | 0.014 | 0.076 | 0.039 | 0.036 | 0.051 | 15.291 | 2.177 | 5.494 |
| Jerome Robinson | SG | 21 | LAC | 3050160 | 33 | 0 | 320 | 44 | 110 | 0.400 | 18 | 57 | 0.316 | 26 | 53 | 0.491 | 0.482 | 6 | 9 | 0.667 | 3 | 38 | 41 | 19 | 11 | 3 | 13 | 46 | 112 | 0.350 | 0.019 | 0.009 | 0.059 | 0.034 | 0.041 | 0.056 | 3.394 | 0.576 | 1.242 |
| Joe Harris | SG | 27 | BRK | 8333333 | 76 | 76 | 2293 | 374 | 748 | 0.500 | 183 | 386 | 0.474 | 191 | 362 | 0.528 | 0.622 | 110 | 133 | 0.827 | 52 | 239 | 291 | 181 | 38 | 17 | 121 | 182 | 1041 | 0.454 | 0.048 | 0.007 | 0.079 | 0.017 | 0.053 | 0.080 | 13.697 | 2.382 | 3.829 |
| John Jenkins | SG | 27 | TOT | 585809 | 26 | 0 | 333 | 42 | 105 | 0.400 | 22 | 58 | 0.379 | 20 | 47 | 0.426 | 0.505 | 15 | 18 | 0.833 | 6 | 31 | 37 | 22 | 0 | 2 | 9 | 10 | 121 | 0.363 | 0.045 | 0.006 | 0.066 | 0.000 | 0.027 | 0.066 | 4.654 | 0.846 | 1.423 |
| Jordan Clarkson | SG | 26 | CLE | 12500000 | 81 | 0 | 2214 | 529 | 1180 | 0.448 | 144 | 445 | 0.324 | 385 | 735 | 0.524 | 0.509 | 162 | 192 | 0.844 | 82 | 188 | 270 | 196 | 57 | 13 | 135 | 112 | 1364 | 0.616 | 0.073 | 0.006 | 0.089 | 0.026 | 0.061 | 0.065 | 16.840 | 2.420 | 3.333 |
| Jordan McRae | SG | 27 | WAS | 77250 | 27 | 0 | 333 | 61 | 130 | 0.469 | 10 | 35 | 0.286 | 51 | 95 | 0.537 | 0.508 | 28 | 35 | 0.800 | 6 | 34 | 40 | 30 | 13 | 7 | 15 | 26 | 160 | 0.480 | 0.084 | 0.021 | 0.090 | 0.039 | 0.045 | 0.030 | 5.926 | 1.111 | 1.481 |
| Josh Hart | SG | 23 | LAL | 1655160 | 67 | 22 | 1715 | 189 | 464 | 0.407 | 92 | 274 | 0.336 | 97 | 190 | 0.511 | 0.506 | 55 | 80 | 0.688 | 35 | 213 | 248 | 93 | 64 | 40 | 58 | 147 | 525 | 0.306 | 0.032 | 0.023 | 0.054 | 0.037 | 0.034 | 0.054 | 7.836 | 1.388 | 3.701 |
| Josh Jackson | SG | 21 | PHO | 6041520 | 79 | 29 | 1988 | 347 | 841 | 0.413 | 73 | 225 | 0.324 | 274 | 616 | 0.445 | 0.456 | 143 | 213 | 0.671 | 66 | 281 | 347 | 183 | 74 | 56 | 173 | 209 | 910 | 0.458 | 0.072 | 0.028 | 0.092 | 0.037 | 0.087 | 0.037 | 11.519 | 2.316 | 4.392 |
| Josh Okogie | SG | 20 | MIN | 2163600 | 74 | 52 | 1757 | 196 | 508 | 0.386 | 60 | 215 | 0.279 | 136 | 293 | 0.464 | 0.445 | 118 | 162 | 0.728 | 41 | 177 | 218 | 91 | 88 | 33 | 63 | 166 | 570 | 0.324 | 0.067 | 0.019 | 0.052 | 0.050 | 0.036 | 0.034 | 7.703 | 1.230 | 2.946 |
| Josh Richardson | SG | 25 | MIA | 9367200 | 73 | 73 | 2539 | 423 | 1026 | 0.412 | 164 | 460 | 0.357 | 259 | 566 | 0.458 | 0.492 | 199 | 231 | 0.861 | 54 | 209 | 263 | 298 | 79 | 34 | 113 | 200 | 1209 | 0.476 | 0.078 | 0.013 | 0.117 | 0.031 | 0.045 | 0.065 | 16.562 | 4.082 | 3.603 |
| Jrue Holiday | SG | 28 | NOP | 26641111 | 67 | 67 | 2402 | 547 | 1159 | 0.472 | 118 | 363 | 0.325 | 429 | 796 | 0.539 | 0.523 | 208 | 271 | 0.768 | 75 | 259 | 334 | 518 | 109 | 54 | 210 | 148 | 1420 | 0.591 | 0.087 | 0.022 | 0.216 | 0.045 | 0.087 | 0.049 | 21.194 | 7.731 | 4.985 |
| Justin Holiday | SG | 29 | TOT | 4500000 | 82 | 77 | 2607 | 300 | 777 | 0.386 | 162 | 465 | 0.348 | 138 | 312 | 0.442 | 0.490 | 95 | 106 | 0.896 | 46 | 277 | 323 | 146 | 121 | 36 | 104 | 164 | 857 | 0.329 | 0.036 | 0.014 | 0.056 | 0.046 | 0.040 | 0.062 | 10.451 | 1.780 | 3.939 |
| Kent Bazemore | SG | 29 | ATL | 18089888 | 67 | 35 | 1643 | 278 | 691 | 0.402 | 96 | 300 | 0.320 | 182 | 391 | 0.465 | 0.472 | 127 | 175 | 0.726 | 37 | 224 | 261 | 152 | 89 | 42 | 121 | 170 | 779 | 0.474 | 0.077 | 0.026 | 0.093 | 0.054 | 0.074 | 0.058 | 11.627 | 2.269 | 3.896 |
| Kentavious Caldwell-Pope | SG | 25 | LAL | 12000000 | 82 | 23 | 2035 | 325 | 756 | 0.430 | 151 | 435 | 0.347 | 174 | 321 | 0.542 | 0.530 | 137 | 158 | 0.867 | 48 | 190 | 238 | 110 | 73 | 13 | 65 | 137 | 938 | 0.461 | 0.067 | 0.006 | 0.054 | 0.036 | 0.032 | 0.074 | 11.439 | 1.341 | 2.902 |
| Kevin Huerter | SG | 20 | ATL | 2250960 | 75 | 59 | 2048 | 275 | 657 | 0.419 | 136 | 353 | 0.385 | 139 | 304 | 0.457 | 0.522 | 41 | 56 | 0.732 | 60 | 185 | 245 | 214 | 65 | 25 | 109 | 155 | 727 | 0.355 | 0.020 | 0.012 | 0.104 | 0.032 | 0.053 | 0.066 | 9.693 | 2.853 | 3.267 |
| Khyri Thomas | SG | 22 | DET | 838464 | 26 | 0 | 195 | 22 | 69 | 0.319 | 10 | 35 | 0.286 | 12 | 34 | 0.353 | 0.391 | 7 | 11 | 0.636 | 4 | 16 | 20 | 8 | 7 | 5 | 4 | 22 | 61 | 0.313 | 0.036 | 0.026 | 0.041 | 0.036 | 0.021 | 0.051 | 2.346 | 0.308 | 0.769 |
| Klay Thompson | SG | 28 | GSW | 18988725 | 78 | 78 | 2652 | 655 | 1402 | 0.467 | 241 | 599 | 0.402 | 414 | 803 | 0.516 | 0.553 | 129 | 158 | 0.816 | 37 | 262 | 299 | 186 | 84 | 47 | 115 | 157 | 1680 | 0.633 | 0.049 | 0.018 | 0.070 | 0.032 | 0.043 | 0.091 | 21.538 | 2.385 | 3.833 |
| Lance Stephenson | SG | 28 | LAL | 4449000 | 68 | 3 | 1123 | 184 | 432 | 0.426 | 73 | 197 | 0.371 | 111 | 235 | 0.472 | 0.510 | 50 | 73 | 0.685 | 32 | 183 | 215 | 140 | 41 | 7 | 86 | 111 | 491 | 0.437 | 0.045 | 0.006 | 0.125 | 0.037 | 0.077 | 0.065 | 7.221 | 2.059 | 3.162 |
| Landry Shamet | SG | 21 | TOT | 1705920 | 79 | 27 | 1802 | 240 | 557 | 0.431 | 167 | 396 | 0.422 | 73 | 161 | 0.453 | 0.581 | 75 | 93 | 0.806 | 21 | 113 | 134 | 117 | 37 | 10 | 45 | 155 | 722 | 0.401 | 0.042 | 0.006 | 0.065 | 0.021 | 0.025 | 0.093 | 9.139 | 1.481 | 1.696 |
| Langston Galloway | SG | 27 | DET | 7000000 | 80 | 4 | 1745 | 228 | 587 | 0.388 | 135 | 380 | 0.355 | 93 | 207 | 0.449 | 0.503 | 81 | 96 | 0.844 | 49 | 122 | 171 | 85 | 37 | 8 | 24 | 135 | 672 | 0.385 | 0.046 | 0.005 | 0.049 | 0.021 | 0.014 | 0.077 | 8.400 | 1.062 | 2.138 |
| Luke Kennard | SG | 22 | DET | 3275280 | 63 | 10 | 1437 | 228 | 520 | 0.438 | 106 | 269 | 0.394 | 122 | 251 | 0.486 | 0.540 | 51 | 61 | 0.836 | 12 | 171 | 183 | 114 | 26 | 10 | 57 | 92 | 613 | 0.427 | 0.035 | 0.007 | 0.079 | 0.018 | 0.040 | 0.074 | 9.730 | 1.810 | 2.905 |
| Malachi Richardson | SG | 23 | TOR | 1569360 | 22 | 0 | 103 | 9 | 29 | 0.310 | 8 | 25 | 0.320 | 1 | 4 | 0.250 | 0.448 | 4 | 5 | 0.800 | 2 | 11 | 13 | 0 | 1 | 0 | 8 | 13 | 30 | 0.291 | 0.039 | 0.000 | 0.000 | 0.010 | 0.078 | 0.078 | 1.364 | 0.000 | 0.591 |
| Malcolm Brogdon | SG | 26 | MIL | 1544951 | 64 | 64 | 1832 | 378 | 748 | 0.505 | 104 | 244 | 0.426 | 274 | 504 | 0.544 | 0.575 | 141 | 152 | 0.928 | 65 | 223 | 288 | 205 | 46 | 13 | 91 | 102 | 1001 | 0.546 | 0.077 | 0.007 | 0.112 | 0.025 | 0.050 | 0.057 | 15.641 | 3.203 | 4.500 |
| Malik Beasley | SG | 22 | DEN | 1773840 | 81 | 18 | 1879 | 349 | 737 | 0.474 | 163 | 405 | 0.402 | 186 | 332 | 0.560 | 0.584 | 56 | 66 | 0.848 | 35 | 165 | 200 | 97 | 55 | 10 | 55 | 116 | 917 | 0.488 | 0.030 | 0.005 | 0.052 | 0.029 | 0.029 | 0.087 | 11.321 | 1.198 | 2.469 |
| Malik Monk | SG | 20 | CHO | 3447480 | 73 | 0 | 1258 | 227 | 586 | 0.387 | 109 | 330 | 0.330 | 118 | 256 | 0.461 | 0.480 | 90 | 102 | 0.882 | 16 | 121 | 137 | 117 | 37 | 19 | 86 | 106 | 653 | 0.519 | 0.072 | 0.015 | 0.093 | 0.029 | 0.068 | 0.087 | 8.945 | 1.603 | 1.877 |
| Marco Belinelli | SG | 32 | SAS | 6153846 | 79 | 1 | 1815 | 285 | 690 | 0.413 | 147 | 395 | 0.372 | 138 | 295 | 0.468 | 0.520 | 112 | 124 | 0.903 | 16 | 182 | 198 | 132 | 35 | 8 | 72 | 121 | 829 | 0.457 | 0.062 | 0.004 | 0.073 | 0.019 | 0.040 | 0.081 | 10.494 | 1.671 | 2.506 |
| Marcus Smart | SG | 24 | BOS | 11160716 | 80 | 60 | 2200 | 239 | 567 | 0.422 | 126 | 346 | 0.364 | 113 | 221 | 0.511 | 0.533 | 104 | 129 | 0.806 | 57 | 177 | 234 | 321 | 143 | 28 | 123 | 201 | 708 | 0.322 | 0.047 | 0.013 | 0.146 | 0.065 | 0.056 | 0.057 | 8.850 | 4.013 | 2.925 |
| MarShon Brooks | SG | 30 | MEM | 1656092 | 29 | 0 | 387 | 76 | 169 | 0.450 | 15 | 54 | 0.278 | 61 | 115 | 0.530 | 0.494 | 23 | 33 | 0.697 | 12 | 33 | 45 | 25 | 9 | 4 | 21 | 33 | 190 | 0.491 | 0.059 | 0.010 | 0.065 | 0.023 | 0.054 | 0.039 | 6.552 | 0.862 | 1.552 |
| Nik Stauskas | SG | 25 | TOT | 2161886 | 68 | 0 | 1015 | 136 | 338 | 0.402 | 70 | 188 | 0.372 | 66 | 150 | 0.440 | 0.506 | 57 | 64 | 0.891 | 18 | 109 | 127 | 81 | 21 | 7 | 51 | 50 | 399 | 0.393 | 0.056 | 0.007 | 0.080 | 0.021 | 0.050 | 0.069 | 5.868 | 1.191 | 1.868 |
| Norman Powell | SG | 25 | TOR | 9367200 | 60 | 3 | 1126 | 193 | 400 | 0.483 | 68 | 170 | 0.400 | 125 | 230 | 0.543 | 0.568 | 62 | 75 | 0.827 | 16 | 123 | 139 | 91 | 39 | 13 | 65 | 96 | 516 | 0.458 | 0.055 | 0.012 | 0.081 | 0.035 | 0.058 | 0.060 | 8.600 | 1.517 | 2.317 |
| Pat Connaughton | SG | 26 | MIL | 1641000 | 61 | 2 | 1261 | 163 | 350 | 0.466 | 66 | 200 | 0.330 | 97 | 150 | 0.647 | 0.560 | 29 | 40 | 0.725 | 61 | 197 | 258 | 122 | 33 | 25 | 33 | 81 | 421 | 0.334 | 0.023 | 0.020 | 0.097 | 0.026 | 0.026 | 0.052 | 6.902 | 2.000 | 4.230 |
| Patrick McCaw | SG | 23 | TOT | 964104 | 29 | 1 | 397 | 26 | 63 | 0.413 | 9 | 28 | 0.321 | 17 | 35 | 0.486 | 0.484 | 13 | 15 | 0.867 | 7 | 41 | 48 | 29 | 23 | 2 | 17 | 38 | 74 | 0.186 | 0.033 | 0.005 | 0.073 | 0.058 | 0.043 | 0.023 | 2.552 | 1.000 | 1.655 |
| Reggie Bullock | SG | 27 | TOT | 2500000 | 63 | 60 | 1879 | 245 | 594 | 0.412 | 148 | 393 | 0.377 | 97 | 201 | 0.483 | 0.537 | 73 | 85 | 0.859 | 22 | 151 | 173 | 129 | 40 | 12 | 65 | 109 | 711 | 0.378 | 0.039 | 0.006 | 0.069 | 0.021 | 0.035 | 0.079 | 11.286 | 2.048 | 2.746 |
| Rodney Hood | SG | 26 | TOT | 3472887 | 72 | 49 | 1893 | 292 | 671 | 0.435 | 84 | 236 | 0.356 | 208 | 435 | 0.478 | 0.498 | 137 | 155 | 0.884 | 25 | 132 | 157 | 126 | 59 | 12 | 55 | 146 | 805 | 0.425 | 0.072 | 0.006 | 0.067 | 0.031 | 0.029 | 0.044 | 11.181 | 1.750 | 2.181 |
| Rodney McGruder | SG | 27 | MIA | 1544951 | 66 | 45 | 1550 | 186 | 461 | 0.403 | 79 | 225 | 0.351 | 107 | 236 | 0.453 | 0.489 | 52 | 72 | 0.722 | 60 | 178 | 238 | 112 | 36 | 12 | 64 | 115 | 503 | 0.325 | 0.034 | 0.008 | 0.072 | 0.023 | 0.041 | 0.051 | 7.621 | 1.697 | 3.606 |
| Ryan Broekhoff | SG | 28 | DAL | 838464 | 42 | 0 | 453 | 57 | 126 | 0.452 | 38 | 93 | 0.409 | 19 | 33 | 0.576 | 0.603 | 15 | 19 | 0.789 | 8 | 55 | 63 | 22 | 6 | 4 | 16 | 35 | 167 | 0.369 | 0.033 | 0.009 | 0.049 | 0.013 | 0.035 | 0.084 | 3.976 | 0.524 | 1.500 |
| Seth Curry | SG | 28 | POR | 2795000 | 74 | 2 | 1399 | 212 | 465 | 0.456 | 113 | 251 | 0.450 | 99 | 214 | 0.463 | 0.577 | 44 | 52 | 0.846 | 27 | 93 | 120 | 66 | 36 | 12 | 61 | 97 | 581 | 0.415 | 0.031 | 0.009 | 0.047 | 0.026 | 0.044 | 0.081 | 7.851 | 0.892 | 1.622 |
| Shake Milton | SG | 22 | PHI | 77250 | 20 | 0 | 268 | 34 | 87 | 0.391 | 14 | 44 | 0.318 | 20 | 43 | 0.465 | 0.471 | 5 | 7 | 0.714 | 9 | 26 | 35 | 18 | 8 | 8 | 6 | 29 | 87 | 0.325 | 0.019 | 0.030 | 0.067 | 0.030 | 0.022 | 0.052 | 4.350 | 0.900 | 1.750 |
| Sindarius Thornwell | SG | 24 | LAC | 1378242 | 64 | 1 | 313 | 17 | 49 | 0.347 | 3 | 15 | 0.200 | 14 | 34 | 0.412 | 0.378 | 25 | 34 | 0.735 | 5 | 39 | 44 | 18 | 14 | 7 | 20 | 41 | 62 | 0.198 | 0.080 | 0.022 | 0.058 | 0.045 | 0.064 | 0.010 | 0.969 | 0.281 | 0.688 |
| Sterling Brown | SG | 23 | MIL | 1378242 | 58 | 7 | 1034 | 145 | 312 | 0.465 | 53 | 147 | 0.361 | 92 | 165 | 0.558 | 0.550 | 29 | 42 | 0.690 | 29 | 155 | 184 | 84 | 25 | 8 | 46 | 88 | 372 | 0.360 | 0.028 | 0.008 | 0.081 | 0.024 | 0.044 | 0.051 | 6.414 | 1.448 | 3.172 |
| Terrance Ferguson | SG | 20 | OKC | 2118840 | 74 | 74 | 1931 | 185 | 431 | 0.429 | 106 | 290 | 0.366 | 79 | 141 | 0.560 | 0.552 | 37 | 51 | 0.725 | 33 | 108 | 141 | 72 | 40 | 16 | 47 | 231 | 513 | 0.266 | 0.019 | 0.008 | 0.037 | 0.021 | 0.024 | 0.055 | 6.932 | 0.973 | 1.905 |
| Terrence Ross | SG | 27 | ORL | 10500000 | 81 | 0 | 2150 | 440 | 1027 | 0.428 | 217 | 566 | 0.383 | 223 | 461 | 0.484 | 0.534 | 126 | 144 | 0.875 | 27 | 253 | 280 | 135 | 72 | 29 | 90 | 119 | 1223 | 0.569 | 0.059 | 0.013 | 0.063 | 0.033 | 0.042 | 0.101 | 15.099 | 1.667 | 3.457 |
| Tim Hardaway | SG | 26 | TOT | 17325000 | 65 | 63 | 2057 | 390 | 993 | 0.393 | 162 | 477 | 0.340 | 228 | 516 | 0.442 | 0.474 | 232 | 276 | 0.841 | 33 | 189 | 222 | 159 | 54 | 8 | 105 | 141 | 1174 | 0.571 | 0.113 | 0.004 | 0.077 | 0.026 | 0.051 | 0.079 | 18.062 | 2.446 | 3.415 |
| Treveon Graham | SG | 25 | BRK | 1512601 | 35 | 21 | 715 | 64 | 191 | 0.335 | 38 | 128 | 0.297 | 26 | 63 | 0.413 | 0.435 | 18 | 22 | 0.818 | 23 | 84 | 107 | 34 | 13 | 7 | 17 | 68 | 184 | 0.257 | 0.025 | 0.010 | 0.048 | 0.018 | 0.024 | 0.053 | 5.257 | 0.971 | 3.057 |
| Troy Daniels | SG | 27 | PHO | 3258539 | 51 | 1 | 760 | 113 | 275 | 0.411 | 74 | 194 | 0.381 | 39 | 81 | 0.481 | 0.545 | 18 | 23 | 0.783 | 13 | 60 | 73 | 26 | 26 | 5 | 27 | 79 | 318 | 0.418 | 0.024 | 0.007 | 0.034 | 0.034 | 0.036 | 0.097 | 6.235 | 0.510 | 1.431 |
| Tyler Dorsey | SG | 22 | TOT | 1378242 | 48 | 11 | 698 | 107 | 264 | 0.405 | 44 | 132 | 0.333 | 63 | 132 | 0.477 | 0.489 | 38 | 61 | 0.623 | 27 | 86 | 113 | 56 | 14 | 2 | 27 | 53 | 296 | 0.424 | 0.054 | 0.003 | 0.080 | 0.020 | 0.039 | 0.063 | 6.167 | 1.167 | 2.354 |
| Tyreke Evans | SG | 29 | IND | 12400000 | 69 | 18 | 1402 | 257 | 660 | 0.389 | 77 | 216 | 0.356 | 180 | 444 | 0.405 | 0.448 | 115 | 160 | 0.719 | 33 | 168 | 201 | 166 | 58 | 18 | 118 | 117 | 706 | 0.504 | 0.082 | 0.013 | 0.118 | 0.041 | 0.084 | 0.055 | 10.232 | 2.406 | 2.913 |
| Victor Oladipo | SG | 26 | IND | 21000000 | 36 | 36 | 1147 | 249 | 588 | 0.423 | 74 | 216 | 0.343 | 175 | 372 | 0.470 | 0.486 | 103 | 141 | 0.730 | 21 | 181 | 202 | 186 | 60 | 11 | 82 | 72 | 675 | 0.588 | 0.090 | 0.010 | 0.162 | 0.052 | 0.071 | 0.065 | 18.750 | 5.167 | 5.611 |
| Wayne Ellington | SG | 31 | TOT | 8653076 | 53 | 38 | 1297 | 184 | 457 | 0.403 | 138 | 372 | 0.371 | 46 | 85 | 0.541 | 0.554 | 39 | 49 | 0.796 | 14 | 93 | 107 | 72 | 54 | 6 | 40 | 92 | 545 | 0.420 | 0.030 | 0.005 | 0.056 | 0.042 | 0.031 | 0.106 | 10.283 | 1.358 | 2.019 |
| Wayne Selden | SG | 24 | TOT | 1544951 | 75 | 13 | 1439 | 196 | 483 | 0.406 | 55 | 174 | 0.316 | 141 | 309 | 0.456 | 0.463 | 67 | 92 | 0.728 | 37 | 143 | 180 | 109 | 33 | 13 | 79 | 131 | 514 | 0.357 | 0.047 | 0.009 | 0.076 | 0.023 | 0.055 | 0.038 | 6.853 | 1.453 | 2.400 |
| Will Barton | SG | 28 | DEN | 11830358 | 43 | 38 | 1189 | 185 | 460 | 0.402 | 67 | 196 | 0.342 | 118 | 264 | 0.447 | 0.475 | 57 | 74 | 0.770 | 32 | 167 | 199 | 124 | 18 | 22 | 65 | 82 | 494 | 0.415 | 0.048 | 0.019 | 0.104 | 0.015 | 0.055 | 0.056 | 11.488 | 2.884 | 4.628 |
| Zach LaVine | SG | 23 | CHI | 19500000 | 63 | 62 | 2171 | 530 | 1135 | 0.467 | 120 | 321 | 0.374 | 410 | 814 | 0.504 | 0.520 | 312 | 375 | 0.832 | 40 | 254 | 294 | 283 | 60 | 26 | 215 | 140 | 1492 | 0.687 | 0.144 | 0.012 | 0.130 | 0.028 | 0.099 | 0.055 | 23.683 | 4.492 | 4.667 |
| Kyle Korver | SG-PF | 37 | TOT | 7560000 | 70 | 0 | 1334 | 201 | 483 | 0.416 | 138 | 348 | 0.397 | 63 | 135 | 0.467 | 0.559 | 60 | 73 | 0.822 | 9 | 153 | 162 | 81 | 25 | 12 | 59 | 106 | 600 | 0.450 | 0.045 | 0.009 | 0.061 | 0.019 | 0.044 | 0.103 | 8.571 | 1.157 | 2.314 |
| Jonathon Simmons | SG-SF | 29 | TOT | 6000000 | 56 | 9 | 1064 | 133 | 350 | 0.380 | 28 | 104 | 0.269 | 105 | 246 | 0.427 | 0.420 | 72 | 97 | 0.742 | 27 | 99 | 126 | 128 | 29 | 15 | 68 | 89 | 366 | 0.344 | 0.068 | 0.014 | 0.120 | 0.027 | 0.064 | 0.026 | 6.536 | 2.286 | 2.250 |
Team Statistics Pace v Wins
Pace_wins <- comb_team %>%
ggplot(aes(Pace, W)) +
geom_point(alpha = 0.5) +
geom_smooth(method = "lm", colour = "magenta") # No linear relationship
Pace_wins## `geom_smooth()` using formula 'y ~ x'
## [1] 0.08892848
##
## Call:
## lm(formula = W ~ Pace, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -23.7808 -7.1784 0.9702 8.7057 17.3618
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -9.220 106.323 -0.087 0.932
## Pace 0.502 1.063 0.472 0.640
##
## Residual standard error: 12.19 on 28 degrees of freedom
## Multiple R-squared: 0.007908, Adjusted R-squared: -0.02752
## F-statistic: 0.2232 on 1 and 28 DF, p-value: 0.6403
## 1 2 3 4 5 6 7 8
## 42.93945 40.78079 41.38320 40.32897 40.47958 39.27475 40.47958 39.82696
## 9 10 11 12 13 14 15 16
## 39.67636 41.43341 39.92736 40.02777 41.83502 42.58804 39.27475 40.07797
## 17 18 19 20 21 22 23 24
## 42.63824 41.08200 42.63824 40.78079 42.38723 40.02777 41.78482 41.23260
## 25 26 27 28 29 30
## 40.52978 42.53784 40.12817 41.08200 41.13220 41.68441
pace_wins_stdres <- rstandard(pace_wins_lm)
pace_wins_points <- 1:length(pace_wins_stdres)
pace_wins_labels <- if_else(abs(pace_wins_stdres) >= 1.5, paste(pace_wins_points), "")
ggplot(data = NULL, aes(x = pace_wins_points, y = pace_wins_stdres)) +
geom_point() +
geom_text(aes(label = pace_wins_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")pace_wins_hats <- hatvalues(pace_wins_lm)
ggplot(data = NULL, aes(x = pace_wins_points, y = pace_wins_hats)) +
geom_point()pace_wins_cook <- cooks.distance(pace_wins_lm)
ggplot(data = NULL, aes(x = pace_wins_points, y = pace_wins_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 0.1024738 1.725845 0.428
## Alternative hypothesis: rho != 0
pace_wins_res <- residuals(pace_wins_lm)
pace_wins_fitted <- predict(pace_wins_lm)
ggplot(data = NULL, aes(x = pace_wins_fitted, y = pace_wins_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Offence rating v Wins
of_wins <- comb_team %>%
ggplot(aes(ORtg, W)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # Strong linear relationship. Explore this more heavily
of_wins## `geom_smooth()` using formula 'y ~ x'
## [1] 0.8411322
##
## Call:
## lm(formula = W ~ ORtg, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -12.9184 -4.5433 0.0544 5.7203 8.6818
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -330.3378 45.1380 -7.318 5.73e-08 ***
## ORtg 3.3636 0.4087 8.230 5.88e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6.621 on 28 degrees of freedom
## Multiple R-squared: 0.7075, Adjusted R-squared: 0.6971
## F-statistic: 67.73 on 1 and 28 DF, p-value: 5.882e-09
## 1 2 3 4 5 6 7 8
## 33.26380 47.05442 38.30915 44.36357 22.16402 31.91837 37.63643 49.74527
## 9 10 11 12 13 14 15 16
## 36.29101 59.49962 58.15419 39.31822 47.72713 32.25473 26.53666 30.57294
## 17 18 19 20 21 22 23 24
## 52.43613 44.36357 44.36357 21.15495 40.66364 35.95465 48.39985 25.86395
## 25 26 27 28 29 30
## 55.46334 41.00000 49.40892 50.08163 42.68178 43.35450
of_wins_stdres <- rstandard(of_wins_lm)
of_wins_points <- 1:length(of_wins_stdres)
of_wins_labels <- if_else(abs(of_wins_stdres) >= 1.5, paste(of_wins_points), "")
ggplot(data = NULL, aes(x = of_wins_points, y = of_wins_stdres)) +
geom_point() +
geom_text(aes(label = of_wins_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")of_wins_hats <- hatvalues(of_wins_lm)
ggplot(data = NULL, aes(x = of_wins_points, y = of_wins_hats)) +
geom_point()of_wins_cook <- cooks.distance(of_wins_lm)
ggplot(data = NULL, aes(x = of_wins_points, y = of_wins_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 0.1891721 1.501797 0.148
## Alternative hypothesis: rho != 0
of_wins_res <- residuals(of_wins_lm)
of_wins_fitted <- predict(of_wins_lm)
ggplot(data = NULL, aes(x = of_wins_fitted, y = of_wins_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Defence rating v Wins
def_wins <- comb_team %>%
ggplot(aes(DRtg, W)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # Strong linear relationship. Explore this more heavily. (Appears as a negative because the lower the rating better in this instance.)
def_wins## `geom_smooth()` using formula 'y ~ x'
## [1] -0.7597828
##
## Call:
## lm(formula = W ~ DRtg, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -13.7612 -6.0172 -0.6127 6.1833 13.1944
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 383.8923 55.4715 6.921 1.60e-07 ***
## DRtg -3.1058 0.5023 -6.184 1.12e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.959 on 28 degrees of freedom
## Multiple R-squared: 0.5773, Adjusted R-squared: 0.5622
## F-statistic: 38.24 on 1 and 28 DF, p-value: 1.118e-06
## 1 2 3 4 5 6 7 8
## 30.14000 49.08547 43.18442 34.48814 32.31407 18.64849 40.07861 45.66907
## 9 10 11 12 13 14 15 16
## 44.73733 43.80559 40.07861 53.12303 37.59396 43.80559 45.97966 49.70663
## 17 18 19 20 21 22 23 24
## 57.16059 33.24582 34.17756 30.76117 51.57012 48.15373 42.25268 26.41303
## 25 26 27 28 29 30
## 40.69977 37.59396 38.52570 51.25954 55.60768 30.14000
def_wins_stdres <- rstandard(def_wins_lm)
def_wins_points <- 1:length(def_wins_stdres)
def_wins_labels <- if_else(abs(def_wins_stdres) >= 1.5, paste(def_wins_points), "")
ggplot(data = NULL, aes(x = def_wins_points, y = def_wins_stdres)) +
geom_point() +
geom_text(aes(label = def_wins_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")def_wins_hats <- hatvalues(def_wins_lm)
ggplot(data = NULL, aes(x = def_wins_points, y = def_wins_hats)) +
geom_point()def_wins_cook <- cooks.distance(def_wins_lm)
ggplot(data = NULL, aes(x = def_wins_points, y = def_wins_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 -0.06302277 2.123362 0.818
## Alternative hypothesis: rho != 0
def_wins_res <- residuals(def_wins_lm)
def_wins_fitted <- predict(def_wins_lm)
ggplot(data = NULL, aes(x = def_wins_fitted, y = def_wins_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")3-Point Attempt Rating v Wins
x3PAr_wins <- comb_team %>%
ggplot(aes(x3PAr, W)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # Neutral, no relationship
x3PAr_wins## `geom_smooth()` using formula 'y ~ x'
## [1] 0.2843269
##
## Call:
## lm(formula = W ~ x3PAr, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -22.2461 -6.4940 -0.6239 11.4337 15.5671
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 15.59 16.33 0.955 0.348
## x3PAr 70.82 45.13 1.569 0.128
##
## Residual standard error: 11.74 on 28 degrees of freedom
## Multiple R-squared: 0.08084, Adjusted R-squared: 0.04801
## F-statistic: 2.463 on 1 and 28 DF, p-value: 0.1278
## 1 2 3 4 5 6 7 8
## 44.13246 42.57449 44.13246 42.36204 36.48425 39.10447 45.47798 40.23754
## 9 10 11 12 13 14 15 16
## 43.49511 42.78694 52.34720 36.27180 36.48425 39.81264 39.81264 41.65387
## 17 18 19 20 21 22 23 24
## 45.26553 37.90059 38.53794 39.24611 40.16672 41.08734 39.81264 39.31692
## 25 26 27 28 29 30
## 39.60019 38.32549 35.84690 42.43286 43.49511 41.79551
x3PAr_wins_stdres <- rstandard(x3PAr_wins_lm)
x3PAr_wins_points <- 1:length(x3PAr_wins_stdres)
x3PAr_wins_labels <- if_else(abs(x3PAr_wins_stdres) >= 1.5, paste(x3PAr_wins_points), "")
ggplot(data = NULL, aes(x = x3PAr_wins_points, y = x3PAr_wins_stdres)) +
geom_point() +
geom_text(aes(label = x3PAr_wins_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")x3PAr_wins_hats <- hatvalues(x3PAr_wins_lm)
ggplot(data = NULL, aes(x = x3PAr_wins_points, y = x3PAr_wins_hats)) +
geom_point()x3PAr_wins_cook <- cooks.distance(x3PAr_wins_lm)
ggplot(data = NULL, aes(x = x3PAr_wins_points, y = x3PAr_wins_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 0.009106348 1.897535 0.782
## Alternative hypothesis: rho != 0
x3PAr_wins_res <- residuals(x3PAr_wins_lm)
x3PAr_wins_fitted <- predict(x3PAr_wins_lm)
ggplot(data = NULL, aes(x = x3PAr_wins_fitted, y = x3PAr_wins_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")True Shooting Percentage v Wins
TSP_wins <- comb_team %>%
ggplot(aes(TSp, W)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # Moderate linear relationship. Explore for player specific models
TSP_wins## `geom_smooth()` using formula 'y ~ x'
## [1] 0.757103
##
## Call:
## lm(formula = W ~ TSp, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -17.4251 -5.4489 0.4241 5.1456 16.8073
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -297.32 55.19 -5.387 9.63e-06 ***
## TSp 604.62 98.60 6.132 1.28e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.997 on 28 degrees of freedom
## Multiple R-squared: 0.5732, Adjusted R-squared: 0.558
## F-statistic: 37.61 on 1 and 28 DF, p-value: 1.283e-06
## 1 2 3 4 5 6 7 8
## 38.23891 45.49432 38.84353 37.63430 29.77427 29.16965 38.23891 40.05277
## 9 10 11 12 13 14 15 16
## 31.58812 63.02823 53.95897 41.86662 50.33126 37.63430 34.00659 30.37889
## 17 18 19 20 21 22 23 24
## 55.16820 36.42506 43.07585 22.51886 32.19274 35.21583 49.72665 36.42506
## 25 26 27 28 29 30
## 46.09894 37.63430 48.51741 52.74973 48.51741 45.49432
TSP_wins_stdres <- rstandard(TSP_wins_lm)
TSP_wins_points <- 1:length(TSP_wins_stdres)
TSP_wins_labels <- if_else(abs(TSP_wins_stdres) >= 1.5, paste(TSP_wins_points), "")
ggplot(data = NULL, aes(x = TSP_wins_points, y = TSP_wins_stdres)) +
geom_point() +
geom_text(aes(label = TSP_wins_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")TSP_wins_hats <- hatvalues(TSP_wins_lm)
ggplot(data = NULL, aes(x = TSP_wins_points, y = TSP_wins_hats)) +
geom_point()TSP_wins_cook <- cooks.distance(TSP_wins_lm)
ggplot(data = NULL, aes(x = TSP_wins_points, y = TSP_wins_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 0.0368267 1.777 0.492
## Alternative hypothesis: rho != 0
TSP_wins_res <- residuals(TSP_wins_lm)
TSP_wins_fitted <- predict(TSP_wins_lm)
ggplot(data = NULL, aes(x = TSP_wins_fitted, y = TSP_wins_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Effective Field Goal Percentage
eFGp_wins <- comb_team %>%
ggplot(aes(eFGp, W)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # Moderate linear relatonship. Explore for player specific models
eFGp_wins## `geom_smooth()` using formula 'y ~ x'
## [1] 0.7818644
##
## Call:
## lm(formula = W ~ eFGp, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -15.728 -5.514 1.954 4.208 14.272
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -282.36 48.75 -5.792 3.21e-06 ***
## eFGp 616.90 92.96 6.636 3.36e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.632 on 28 degrees of freedom
## Multiple R-squared: 0.6113, Adjusted R-squared: 0.5974
## F-statistic: 44.04 on 1 and 28 DF, p-value: 3.365e-07
## 1 2 3 4 5 6 7 8
## 39.66339 47.06617 38.42959 34.72820 29.17611 27.94231 37.81269 42.74788
## 9 10 11 12 13 14 15 16
## 31.64370 66.19003 52.00136 44.59858 43.98168 42.74788 31.02680 35.34510
## 17 18 19 20 21 22 23 24
## 56.93655 32.87750 43.98168 19.92263 34.72820 37.19579 45.83237 34.72820
## 25 26 27 28 29 30
## 43.36478 40.89718 47.06617 52.61826 49.53377 45.21547
eFGp_wins_stdres <- rstandard(eFGp_wins_lm)
eFGp_wins_points <- 1:length(eFGp_wins_stdres)
eFGp_wins_labels <- if_else(abs(eFGp_wins_stdres) >= 1.5, paste(eFGp_wins_points), "")
ggplot(data = NULL, aes(x = eFGp_wins_points, y = eFGp_wins_stdres)) +
geom_point() +
geom_text(aes(label = eFGp_wins_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")eFGp_wins_hats <- hatvalues(eFGp_wins_lm)
ggplot(data = NULL, aes(x = eFGp_wins_points, y = eFGp_wins_hats)) +
geom_point()eFGp_wins_cook <- cooks.distance(eFGp_wins_lm)
ggplot(data = NULL, aes(x = eFGp_wins_points, y = eFGp_wins_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 -0.09648682 2.016169 0.958
## Alternative hypothesis: rho != 0
eFGp_wins_res <- residuals(eFGp_wins_lm)
eFGp_wins_fitted <- predict(eFGp_wins_lm)
ggplot(data = NULL, aes(x = eFGp_wins_fitted, y = eFGp_wins_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Defensive Rebound Percentage v Lower Defensive Rating
defrb_drtg <- comb_team %>%
ggplot(aes(DRBp, DRtg)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta")
defrb_drtg## `geom_smooth()` using formula 'y ~ x'
## [1] -0.5883396
##
## Call:
## lm(formula = DRtg ~ DRBp, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.7577 -1.5538 0.1272 1.0524 7.1279
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 186.0914 19.6640 9.464 3.2e-10 ***
## DRBp -0.9821 0.2551 -3.850 0.000627 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.422 on 28 degrees of freedom
## Multiple R-squared: 0.3461, Adjusted R-squared: 0.3228
## F-statistic: 14.82 on 1 and 28 DF, p-value: 0.0006273
## 1 2 3 4 5 6 7 8
## 111.0613 110.4721 111.0613 110.3739 110.1775 110.4721 109.9810 109.4900
## 9 10 11 12 13 14 15 16
## 108.8026 110.3739 113.0255 111.2577 111.4541 111.0613 109.8828 109.8828
## 17 18 19 20 21 22 23 24
## 107.2313 112.5344 110.6685 111.3559 109.2936 107.8205 108.9008 114.8914
## 25 26 27 28 29 30
## 109.5882 111.9452 108.1151 110.3739 107.2313 113.3201
defrb_drtg_stdres <- rstandard(defrb_drtg_lm)
defrb_drtg_points <- 1:length(defrb_drtg_stdres)
defrb_drtg_labels <- if_else(abs(defrb_drtg_stdres) >= 1.5, paste(defrb_drtg_points), "")
ggplot(data = NULL, aes(x = defrb_drtg_points, y = defrb_drtg_stdres)) +
geom_point() +
geom_text(aes(label = defrb_drtg_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed") ## Has an outlier at point number 6, need to explore this to see it's impact on the data. Doesn't appear to have a high leverage or high influence.defrb_drtg_hats <- hatvalues(defrb_drtg_lm)
ggplot(data = NULL, aes(x = defrb_drtg_points, y = defrb_drtg_hats)) +
geom_point()defrb_drtg_cook <- cooks.distance(defrb_drtg_lm)
ggplot(data = NULL, aes(x = defrb_drtg_points, y = defrb_drtg_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 0.233268 1.482338 0.154
## Alternative hypothesis: rho != 0
defrb_drtg_res <- residuals(defrb_drtg_lm)
defrb_drtg_fitted <- predict(defrb_drtg_lm)
ggplot(data = NULL, aes(x = defrb_drtg_fitted, y = defrb_drtg_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Turnover Totals contributing to Losses
tov_loss <- comb_team %>%
ggplot(aes(TOV, L)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # No relationship
tov_loss## `geom_smooth()` using formula 'y ~ x'
## [1] 0.2471353
##
## Call:
## lm(formula = L ~ TOV, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -18.3705 -9.4752 -0.2251 7.5361 24.1344
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.16303 30.33643 0.005 0.996
## TOV 0.03536 0.02620 1.350 0.188
##
## Residual standard error: 11.86 on 28 degrees of freedom
## Multiple R-squared: 0.06108, Adjusted R-squared: 0.02754
## F-statistic: 1.821 on 1 and 28 DF, p-value: 0.188
## 1 2 3 4 5 6 7 8
## 49.56487 37.36470 43.87146 35.56120 41.14852 39.27429 41.43143 39.13284
## 9 10 11 12 13 14 15 16
## 40.29982 41.50215 38.84994 39.84010 42.35086 45.56888 40.72417 42.88130
## 17 18 19 20 21 22 23 24
## 40.37054 38.14268 43.12884 40.86562 40.65344 38.42559 43.41174 45.39206
## 25 26 27 28 29 30
## 40.29982 38.88530 35.24293 40.83026 44.01291 40.97171
tov_loss_stdres <- rstandard(tov_loss_lm)
tov_loss_points <- 1:length(tov_loss_stdres)
tov_loss_labels <- if_else(abs(tov_loss_stdres) >= 1.5, paste(tov_loss_points), "")
ggplot(data = NULL, aes(x = tov_loss_points, y = tov_loss_stdres)) +
geom_point() +
geom_text(aes(label = tov_loss_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")tov_loss_hats <- hatvalues(tov_loss_lm)
ggplot(data = NULL, aes(x = tov_loss_points, y = tov_loss_hats)) +
geom_point()tov_loss_cook <- cooks.distance(tov_loss_lm)
ggplot(data = NULL, aes(x = tov_loss_points, y = tov_loss_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 0.09567978 1.784956 0.584
## Alternative hypothesis: rho != 0
tov_loss_res <- residuals(tov_loss_lm)
tov_loss_fitted <- predict(tov_loss_lm)
ggplot(data = NULL, aes(x = tov_loss_fitted, y = tov_loss_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Net Rating v Wins
net_win <- comb_team %>%
ggplot(aes(NRtg, W)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # Strong relationship. Check impact
net_win## `geom_smooth()` using formula 'y ~ x'
## [1] 0.9800362
##
## Call:
## lm(formula = W ~ NRtg, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.099 -1.440 0.325 1.697 4.810
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 41.00808 0.44436 92.28 <2e-16 ***
## NRtg 2.42414 0.09294 26.08 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.434 on 28 degrees of freedom
## Multiple R-squared: 0.9605, Adjusted R-squared: 0.9591
## F-statistic: 680.3 on 1 and 28 DF, p-value: < 2.2e-16
## 1 2 3 4 5 6 7 8
## 26.94806 51.67431 40.76567 38.34152 20.64529 17.00907 37.85670 50.94706
## 9 10 11 12 13 14 15 16
## 40.52325 56.52259 52.64396 49.25016 43.18981 36.88704 34.46290 40.28084
## 17 18 19 20 21 22 23 24
## 61.85570 37.37187 38.09911 18.70597 49.00775 42.94739 47.31085 18.70597
## 25 26 27 28 29 30
## 51.18948 38.34152 45.12912 55.55293 53.61362 34.22048
net_wins_stdres <- rstandard(net_wins_lm)
net_wins_points <- 1:length(net_wins_stdres)
net_wins_labels <- if_else(abs(net_wins_stdres) >= 1.5, paste(net_wins_points), "")
ggplot(data = NULL, aes(x = net_wins_points, y = net_wins_stdres)) +
geom_point() +
geom_text(aes(label = net_wins_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")net_wins_hats <- hatvalues(net_wins_lm)
ggplot(data = NULL, aes(x = net_wins_points, y = net_wins_hats)) +
geom_point()net_wins_cook <- cooks.distance(net_wins_lm)
ggplot(data = NULL, aes(x = net_wins_points, y = net_wins_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 -0.0192226 1.983334 0.898
## Alternative hypothesis: rho != 0
net_wins_res <- residuals(net_wins_lm)
net_wins_fitted <- predict(net_wins_lm)
ggplot(data = NULL, aes(x = net_wins_fitted, y = net_wins_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Total Points contributing to Offensive Rating
pts_off <- comb_team %>%
ggplot(aes(PTS, W)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # Strong linear relationship
pts_off## `geom_smooth()` using formula 'y ~ x'
## [1] 0.6606001
##
## Call:
## lm(formula = W ~ PTS, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -16.215 -7.302 1.969 6.859 14.044
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.749e+02 4.641e+01 -3.770 0.000776 ***
## PTS 2.368e-02 5.086e-03 4.656 7.1e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 9.19 on 28 degrees of freedom
## Multiple R-squared: 0.4364, Adjusted R-squared: 0.4163
## F-statistic: 21.68 on 1 and 28 DF, p-value: 7.098e-05
## 1 2 3 4 5 6 7 8
## 45.14174 43.29465 43.01048 40.09777 28.82580 27.92594 36.45096 39.95569
## 9 10 11 12 13 14 15 16
## 32.92255 53.57203 46.25473 34.79331 48.64647 42.08694 26.10253 30.31768
## 17 18 19 20 21 22 23 24
## 54.42453 43.46041 49.21480 28.11538 47.34403 33.44352 48.71751 33.79873
## 25 26 27 28 29 30
## 47.69924 46.77570 41.87381 47.27299 41.99222 46.46785
pts_wins_stdres <- rstandard(pts_wins_lm)
pts_wins_points <- 1:length(pts_wins_stdres)
pts_wins_labels <- if_else(abs(pts_wins_stdres) >= 1.5, paste(pts_wins_points), "")
ggplot(data = NULL, aes(x = pts_wins_points, y = pts_wins_stdres)) +
geom_point() +
geom_text(aes(label = pts_wins_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")pts_wins_hats <- hatvalues(pts_wins_lm)
ggplot(data = NULL, aes(x = pts_wins_points, y = net_wins_hats)) +
geom_point()pts_wins_cook <- cooks.distance(pts_wins_lm)
ggplot(data = NULL, aes(x = pts_wins_points, y = pts_wins_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 0.1627497 1.475814 0.132
## Alternative hypothesis: rho != 0
pts_wins_res <- residuals(pts_wins_lm)
pts_wins_fitted <- predict(pts_wins_lm)
ggplot(data = NULL, aes(x = pts_wins_fitted, y = pts_wins_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Three points v Wins
x3_wins <- comb_team %>%
ggplot(aes(x3P, W)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # Moderate linear relationship
x3_wins## `geom_smooth()` using formula 'y ~ x'
## [1] 0.4838773
##
## Call:
## lm(formula = W ~ x3P, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -18.8669 -5.9449 -0.9138 10.2949 14.3599
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.94961 15.14840 -0.195 0.84702
## x3P 0.04716 0.01612 2.926 0.00674 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 10.71 on 28 degrees of freedom
## Multiple R-squared: 0.2341, Adjusted R-squared: 0.2068
## F-statistic: 8.56 on 1 and 28 DF, p-value: 0.006744
## 1 2 3 4 5 6 7 8
## 47.37509 45.72433 46.43180 43.13027 32.18807 36.99886 45.25268 39.64009
## 9 10 11 12 13 14 15 16
## 43.88491 48.31838 59.44925 33.79167 35.77258 36.99886 35.30094 40.81920
## 17 18 19 20 21 22 23 24
## 49.16735 36.05557 36.76304 35.86691 41.00786 41.24368 38.97978 34.31048
## 25 26 27 28 29 30
## 39.68725 40.77204 35.34810 44.92253 43.88491 40.91353
x3_wins_stdres <- rstandard(x3_wins_lm)
x3_wins_points <- 1:length(x3_wins_stdres)
x3_wins_labels <- if_else(abs(x3_wins_stdres) >= 1.5, paste(x3_wins_points), "")
ggplot(data = NULL, aes(x = x3_wins_points, y = x3_wins_stdres)) +
geom_point() +
geom_text(aes(label = x3_wins_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")x3_wins_hats <- hatvalues(x3_wins_lm)
ggplot(data = NULL, aes(x = x3_wins_points, y = x3_wins_hats)) +
geom_point()x3_wins_cook <- cooks.distance(x3_wins_lm)
ggplot(data = NULL, aes(x = x3_wins_points, y = x3_wins_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 -0.04675096 1.96371 0.932
## Alternative hypothesis: rho != 0
x3_wins_res <- residuals(x3_wins_lm)
x3_wins_fitted <- predict(x3_wins_lm)
ggplot(data = NULL, aes(x = x3_wins_fitted, y = x3_wins_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Two points v Wins
x2_wins <- comb_team %>%
ggplot(aes(x2P, W)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # No linear relationship
x2_wins## `geom_smooth()` using formula 'y ~ x'
## [1] 0.06870566
##
## Call:
## lm(formula = W ~ x2P, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -23.416 -7.210 1.202 9.174 18.939
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 29.701338 31.084806 0.955 0.348
## x2P 0.004636 0.012723 0.364 0.718
##
## Residual standard error: 12.21 on 28 degrees of freedom
## Multiple R-squared: 0.00472, Adjusted R-squared: -0.03083
## F-statistic: 0.1328 on 1 and 28 DF, p-value: 0.7183
## 1 2 3 4 5 6 7 8
## 40.48118 40.91701 40.15199 40.45799 41.38993 40.56000 39.71616 41.45948
## 9 10 11 12 13 14 15 16
## 39.86452 41.40847 38.48749 41.80721 41.58466 41.96022 40.37454 40.47190
## 17 18 19 20 21 22 23 24
## 41.06074 41.69130 42.40068 40.41627 41.59393 40.73155 41.37602 41.28793
## 25 26 27 28 29 30
## 41.59857 41.82112 42.01585 41.03756 40.46263 41.41311
x2_wins_stdres <- rstandard(x2_wins_lm)
x2_wins_points <- 1:length(x2_wins_stdres)
x2_wins_labels <- if_else(abs(x2_wins_stdres) >= 1.5, paste(x2_wins_points), "")
ggplot(data = NULL, aes(x = x2_wins_points, y = x2_wins_stdres)) +
geom_point() +
geom_text(aes(label = x2_wins_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")x2_wins_hats <- hatvalues(x2_wins_lm)
ggplot(data = NULL, aes(x = x2_wins_points, y = x2_wins_hats)) +
geom_point()x2_wins_cook <- cooks.distance(x2_wins_lm)
ggplot(data = NULL, aes(x = x2_wins_points, y = x2_wins_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 0.112963 1.721293 0.464
## Alternative hypothesis: rho != 0
x2_wins_res <- residuals(x2_wins_lm)
x2_wins_fitted <- predict(x2_wins_lm)
ggplot(data = NULL, aes(x = x2_wins_fitted, y = x2_wins_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Free Throws v wins
ft_wins <- comb_team %>%
ggplot(aes(FT, W)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # Weak linear relationship
ft_wins## `geom_smooth()` using formula 'y ~ x'
## [1] 0.1297686
##
## Call:
## lm(formula = W ~ FT, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -24.3841 -8.1118 0.3849 8.5255 18.7619
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 24.71592 23.61820 1.046 0.304
## FT 0.01123 0.01622 0.693 0.494
##
## Residual standard error: 12.14 on 28 degrees of freedom
## Multiple R-squared: 0.01684, Adjusted R-squared: -0.01827
## F-statistic: 0.4796 on 1 and 28 DF, p-value: 0.4943
## 1 2 3 4 5 6 7 8
## 40.92362 39.11528 42.18160 41.67616 39.63195 39.78920 42.02435 39.25006
## 9 10 11 12 13 14 15 16
## 40.60913 39.75550 42.48486 39.29499 45.52872 39.72180 41.03594 38.62107
## 17 18 19 20 21 22 23 24
## 41.23812 42.35008 41.13703 41.38413 41.12580 38.54245 44.28197 40.96855
## 25 26 27 28 29 30
## 42.21530 39.92398 40.53050 40.99101 42.01312 41.65370
ft_wins_stdres <- rstandard(ft_wins_lm)
ft_wins_points <- 1:length(ft_wins_stdres)
ft_wins_labels <- if_else(abs(ft_wins_stdres) >= 1.5, paste(ft_wins_points), "")
ggplot(data = NULL, aes(x = ft_wins_points, y = ft_wins_stdres)) +
geom_point() +
geom_text(aes(label = ft_wins_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")ft_wins_hats <- hatvalues(ft_wins_lm)
ggplot(data = NULL, aes(x = ft_wins_points, y = ft_wins_hats)) +
geom_point()ft_wins_cook <- cooks.distance(ft_wins_lm)
ggplot(data = NULL, aes(x = ft_wins_points, y = ft_wins_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 0.1088329 1.72528 0.442
## Alternative hypothesis: rho != 0
ft_wins_res <- residuals(ft_wins_lm)
ft_wins_fitted <- predict(ft_wins_lm)
ggplot(data = NULL, aes(x = ft_wins_fitted, y = ft_wins_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Three Points v Offensive Rating
x3p_ortg <- comb_team %>%
ggplot(aes(x3P, ORtg)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # Moderate linear relationship
x3p_ortg## `geom_smooth()` using formula 'y ~ x'
## [1] 0.5303433
##
## Call:
## lm(formula = ORtg ~ x3P, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.4931 -2.1844 0.0529 2.0272 4.6598
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 98.354052 3.669782 26.80 < 2e-16 ***
## x3P 0.012927 0.003905 3.31 0.00257 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.595 on 28 degrees of freedom
## Multiple R-squared: 0.2813, Adjusted R-squared: 0.2556
## F-statistic: 10.96 on 1 and 28 DF, p-value: 0.002573
## 1 2 3 4 5 6 7 8
## 112.1473 111.6949 111.8888 110.9839 107.9848 109.3033 111.5656 110.0273
## 9 10 11 12 13 14 15 16
## 111.1907 112.4059 115.4567 108.4243 108.9672 109.3033 108.8380 110.3504
## 17 18 19 20 21 22 23 24
## 112.6386 109.0448 109.2387 108.9931 110.4022 110.4668 109.8463 108.5665
## 25 26 27 28 29 30
## 110.0402 110.3375 108.8509 111.4751 111.1907 110.3763
x3p_ortg_stdres <- rstandard(x3p_ortg_lm)
x3p_ortg_points <- 1:length(x3p_ortg_stdres)
x3p_ortg_labels <- if_else(abs(x3p_ortg_stdres) >= 1.5, paste(x3p_ortg_points), "")
ggplot(data = NULL, aes(x = x3p_ortg_points, y = x3p_ortg_stdres)) +
geom_point() +
geom_text(aes(label = x3p_ortg_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")x3p_ortg_hats <- hatvalues(x3p_ortg_lm)
ggplot(data = NULL, aes(x = x3p_ortg_points, y = x3p_ortg_hats)) +
geom_point()x3p_ortg_cook <- cooks.distance(x3p_ortg_lm)
ggplot(data = NULL, aes(x = x3p_ortg_points, y = x3p_ortg_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 -0.1451083 2.200583 0.61
## Alternative hypothesis: rho != 0
x3p_ortg_res <- residuals(x3p_ortg_lm)
x3p_ortg_fitted <- predict(x3p_ortg_lm)
ggplot(data = NULL, aes(x = x3p_ortg_fitted, y = x3p_ortg_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Two Points v Offensive Rating
x2p_ortg <- comb_team %>%
ggplot(aes(x2P, ORtg)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # Weak to no linear relationship, but teams making the higher two point baskets generally had a higher ORtg. Outlier may be included here though.
x2p_ortg## `geom_smooth()` using formula 'y ~ x'
## [1] 0.09895804
##
## Call:
## lm(formula = ORtg ~ x2P, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.7404 -1.9357 0.0999 2.0059 6.0050
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.063e+02 7.754e+00 13.714 6e-14 ***
## x2P 1.670e-03 3.174e-03 0.526 0.603
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.046 on 28 degrees of freedom
## Multiple R-squared: 0.009793, Adjusted R-squared: -0.02557
## F-statistic: 0.2769 on 1 and 28 DF, p-value: 0.6029
## 1 2 3 4 5 6 7 8
## 110.2131 110.3701 110.0946 110.2048 110.5404 110.2415 109.9376 110.5655
## 9 10 11 12 13 14 15 16
## 109.9910 110.5471 109.4950 110.6907 110.6106 110.7459 110.1747 110.2098
## 17 18 19 20 21 22 23 24
## 110.4219 110.6490 110.9045 110.1897 110.6139 110.3033 110.5354 110.5037
## 25 26 27 28 29 30
## 110.6156 110.6958 110.7659 110.4135 110.2064 110.5488
x2p_ortg_stdres <- rstandard(x2p_ortg_lm)
x2p_ortg_points <- 1:length(x2p_ortg_stdres)
x2p_ortg_labels <- if_else(abs(x2p_ortg_stdres) >= 1.5, paste(x2p_ortg_points), "")
ggplot(data = NULL, aes(x = x2p_ortg_points, y = x2p_ortg_stdres)) +
geom_point() +
geom_text(aes(label = x2p_ortg_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")x2p_ortg_hats <- hatvalues(x2p_ortg_lm)
ggplot(data = NULL, aes(x = x2p_ortg_points, y = x2p_ortg_hats)) +
geom_point()x2p_ortg_cook <- cooks.distance(x2p_ortg_lm)
ggplot(data = NULL, aes(x = x2p_ortg_points, y = x2p_ortg_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 0.0257704 1.930104 0.91
## Alternative hypothesis: rho != 0
x2p_ortg_res <- residuals(x2p_ortg_lm)
x2p_ortg_fitted <- predict(x2p_ortg_lm)
ggplot(data = NULL, aes(x = x2p_ortg_fitted, y = x2p_ortg_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Free Throws v Offensive Rating
ft_ortg <- comb_team %>%
ggplot(aes(FT, ORtg)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # Moderate linear relationship
ft_ortg## `geom_smooth()` using formula 'y ~ x'
## [1] 0.291237
##
## Call:
## lm(formula = ORtg ~ FT, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.1156 -1.7174 0.0868 2.2596 6.1985
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.013e+02 5.698e+00 17.770 <2e-16 ***
## FT 6.304e-03 3.913e-03 1.611 0.118
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.929 on 28 degrees of freedom
## Multiple R-squared: 0.08482, Adjusted R-squared: 0.05213
## F-statistic: 2.595 on 1 and 28 DF, p-value: 0.1184
## 1 2 3 4 5 6 7 8
## 110.3571 109.3422 111.0632 110.7795 109.6322 109.7205 110.9749 109.4179
## 9 10 11 12 13 14 15 16
## 110.1806 109.7015 111.2334 109.4431 112.9417 109.6826 110.4202 109.0649
## 17 18 19 20 21 22 23 24
## 110.5336 111.1577 110.4769 110.6156 110.4706 109.0207 112.2419 110.3823
## 25 26 27 28 29 30
## 111.0821 109.7961 110.1365 110.3950 110.9686 110.7669
ft_ortg_stdres <- rstandard(ft_ortg_lm)
ft_ortg_points <- 1:length(ft_ortg_stdres)
ft_ortg_labels <- if_else(abs(ft_ortg_stdres) >= 1.5, paste(ft_ortg_points), "")
ggplot(data = NULL, aes(x = ft_ortg_points, y = ft_ortg_stdres)) +
geom_point() +
geom_text(aes(label = ft_ortg_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")ft_ortg_hats <- hatvalues(ft_ortg_lm)
ggplot(data = NULL, aes(x = ft_ortg_points, y = ft_ortg_hats)) +
geom_point()ft_ortg_cook <- cooks.distance(ft_ortg_lm)
ggplot(data = NULL, aes(x = ft_ortg_points, y = ft_ortg_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 0.04193079 1.894461 0.842
## Alternative hypothesis: rho != 0
ft_ortg_res <- residuals(ft_ortg_lm)
ft_ortg_fitted <- predict(ft_ortg_lm)
ggplot(data = NULL, aes(x = ft_ortg_fitted, y = ft_ortg_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Three Point Percentage v Wins
x3pp_w <- comb_team %>%
ggplot(aes(x3Pp, W)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # Moderate linear relationship
x3pp_w## `geom_smooth()` using formula 'y ~ x'
## [1] 0.5418599
##
## Call:
## lm(formula = W ~ x3Pp, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -21.7873 -5.8964 0.3398 7.7762 20.0635
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -110.23 44.37 -2.484 0.01923 *
## x3Pp 425.41 124.70 3.411 0.00198 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 10.29 on 28 degrees of freedom
## Multiple R-squared: 0.2936, Adjusted R-squared: 0.2684
## F-statistic: 11.64 on 1 and 28 DF, p-value: 0.001983
## 1 2 3 4 5 6 7 8
## 39.51105 45.04142 39.93647 39.08564 39.08564 40.78729 34.40610 39.08564
## 9 10 11 12 13 14 15 16
## 37.80940 53.54969 41.21271 48.87014 54.82593 31.42820 35.25692 38.23481
## 17 18 19 20 21 22 23 24
## 39.93647 39.08564 36.10775 34.40610 37.80940 41.21271 42.48895 29.72655
## 25 26 27 28 29 30
## 42.48895 50.57180 56.52758 45.46684 41.21271 34.83151
x3pp_w_stdres <- rstandard(x3pp_w_lm)
x3pp_w_points <- 1:length(x3pp_w_stdres)
x3pp_w_labels <- if_else(abs(x3pp_w_stdres) >= 1.5, paste(x3pp_w_points), "")
ggplot(data = NULL, aes(x = x3pp_w_points, y = x3pp_w_stdres)) +
geom_point() +
geom_text(aes(label = x3pp_w_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")x3pp_w_hats <- hatvalues(x3pp_w_lm)
ggplot(data = NULL, aes(x = x3pp_w_points, y = x3pp_w_hats)) +
geom_point()x3pp_w_cook <- cooks.distance(x3pp_w_lm)
ggplot(data = NULL, aes(x = x3pp_w_points, y = x3pp_w_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 -0.006206046 1.972432 0.864
## Alternative hypothesis: rho != 0
x3pp_w_res <- residuals(x3pp_w_lm)
x3pp_w_fitted <- predict(x3pp_w_lm)
ggplot(data = NULL, aes(x = x3pp_w_fitted, y = x3pp_w_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Three Point Percentage v Offensive Rating
x3pp_ortg <- comb_team %>%
ggplot(aes(x3Pp, ORtg)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # Moderate linear relationship
x3pp_ortg## `geom_smooth()` using formula 'y ~ x'
## [1] 0.5532274
##
## Call:
## lm(formula = ORtg ~ x3Pp, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.1112 -1.8453 0.1448 1.7548 5.0457
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 71.79 11.00 6.528 4.48e-07 ***
## x3Pp 108.62 30.91 3.514 0.00152 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.55 on 28 degrees of freedom
## Multiple R-squared: 0.3061, Adjusted R-squared: 0.2813
## F-statistic: 12.35 on 1 and 28 DF, p-value: 0.001519
## 1 2 3 4 5 6 7 8
## 110.0198 111.4318 110.1285 109.9112 109.9112 110.3457 108.7165 109.9112
## 9 10 11 12 13 14 15 16
## 109.5854 113.6042 110.4543 112.4094 113.9300 107.9562 108.9337 109.6940
## 17 18 19 20 21 22 23 24
## 110.1285 109.9112 109.1509 108.7165 109.5854 110.4543 110.7802 107.5217
## 25 26 27 28 29 30
## 110.7802 112.8438 114.3645 111.5405 110.4543 108.8251
x3pp_ortg_stdres <- rstandard(x3pp_ortg_lm)
x3pp_ortg_points <- 1:length(x3pp_ortg_stdres)
x3pp_ortg_labels <- if_else(abs(x3pp_ortg_stdres) >= 1.5, paste(x3pp_ortg_points), "")
ggplot(data = NULL, aes(x = x3pp_ortg_points, y = x3pp_ortg_stdres)) +
geom_point() +
geom_text(aes(label = x3pp_ortg_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")x3pp_ortg_hats <- hatvalues(x3pp_ortg_lm)
ggplot(data = NULL, aes(x = x3pp_ortg_points, y = x3pp_ortg_hats)) +
geom_point()x3pp_ortg_cook <- cooks.distance(x3pp_ortg_lm)
ggplot(data = NULL, aes(x = x3pp_ortg_points, y = x3pp_ortg_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 -0.1190102 2.189357 0.604
## Alternative hypothesis: rho != 0
x3pp_ortg_res <- residuals(x3pp_ortg_lm)
x3pp_ortg_fitted <- predict(x3pp_ortg_lm)
ggplot(data = NULL, aes(x = x3pp_ortg_fitted, y = x3pp_ortg_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Two Point Percentage v Wins
x2pp_w <- comb_team %>%
ggplot(aes(x2Pp, W)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # Moderate linear relationship
x2pp_w## `geom_smooth()` using formula 'y ~ x'
## [1] 0.6009396
##
## Call:
## lm(formula = W ~ x2Pp, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -23.707 -9.320 2.787 7.149 11.738
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -145.27 46.86 -3.100 0.004375 **
## x2Pp 358.06 90.00 3.978 0.000445 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 9.785 on 28 degrees of freedom
## Multiple R-squared: 0.3611, Adjusted R-squared: 0.3383
## F-statistic: 15.83 on 1 and 28 DF, p-value: 0.0004453
## 1 2 3 4 5 6 7 8
## 40.20034 43.42285 38.41006 36.26172 32.32310 29.45865 42.34868 43.42285
## 9 10 11 12 13 14 15 16
## 33.75533 54.16454 52.01620 39.84228 36.26172 48.43564 35.54561 36.97783
## 17 18 19 20 21 22 23 24
## 57.02899 35.18755 46.64536 26.23614 37.33589 36.97783 44.13896 42.70674
## 25 26 27 28 29 30
## 41.99062 35.18755 38.41006 47.71953 48.43564 49.15175
x2pp_w_stdres <- rstandard(x2pp_w_lm)
x2pp_w_points <- 1:length(x2pp_w_stdres)
x2pp_w_labels <- if_else(abs(x2pp_w_stdres) >= 1.5, paste(x2pp_w_points), "")
ggplot(data = NULL, aes(x = x2pp_w_points, y = x2pp_w_stdres)) +
geom_point() +
geom_text(aes(label = x2pp_w_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")x3pp_w_hats <- hatvalues(x3pp_w_lm)
ggplot(data = NULL, aes(x = x3pp_w_points, y = x3pp_w_hats)) +
geom_point()x3pp_w_cook <- cooks.distance(x3pp_w_lm)
ggplot(data = NULL, aes(x = x3pp_w_points, y = x3pp_w_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 -0.006206046 1.972432 0.918
## Alternative hypothesis: rho != 0
x3pp_w_res <- residuals(x3pp_w_lm)
x3pp_w_fitted <- predict(x3pp_w_lm)
ggplot(data = NULL, aes(x = x3pp_w_fitted, y = x3pp_w_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Two Point Percentage v Offensive Rating
x2pp_ortg <- comb_team %>%
ggplot(aes(x2Pp, ORtg)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # Moderate linear relationship
x2pp_ortg## `geom_smooth()` using formula 'y ~ x'
## [1] 0.5532274
##
## Call:
## lm(formula = ORtg ~ x2Pp, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.9585 -1.4956 0.1481 1.8522 4.0339
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 60.36 11.20 5.391 9.52e-06 ***
## x2Pp 96.19 21.50 4.473 0.000117 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.338 on 28 degrees of freedom
## Multiple R-squared: 0.4168, Adjusted R-squared: 0.3959
## F-statistic: 20.01 on 1 and 28 DF, p-value: 0.0001169
## 1 2 3 4 5 6 7 8
## 110.1852 111.0509 109.7042 109.1271 108.0690 107.2995 110.7623 111.0509
## 9 10 11 12 13 14 15 16
## 108.4538 113.9366 113.3594 110.0890 109.1271 112.3975 108.9347 109.3195
## 17 18 19 20 21 22 23 24
## 114.7061 108.8385 111.9166 106.4338 109.4157 109.3195 111.2433 110.8585
## 25 26 27 28 29 30
## 110.6661 108.8385 109.7042 112.2052 112.3975 112.5899
x2pp_ortg_stdres <- rstandard(x2pp_ortg_lm)
x2pp_ortg_points <- 1:length(x2pp_ortg_stdres)
x2pp_ortg_labels <- if_else(abs(x2pp_ortg_stdres) >= 1.5, paste(x2pp_ortg_points), "")
ggplot(data = NULL, aes(x = x2pp_ortg_points, y = x2pp_ortg_stdres)) +
geom_point() +
geom_text(aes(label = x2pp_ortg_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")x2pp_ortg_hats <- hatvalues(x2pp_ortg_lm)
ggplot(data = NULL, aes(x = x2pp_ortg_points, y = x2pp_ortg_hats)) +
geom_point()x2pp_ortg_cook <- cooks.distance(x2pp_ortg_lm)
ggplot(data = NULL, aes(x = x2pp_ortg_points, y = x2pp_ortg_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 -0.1360498 2.229185 0.58
## Alternative hypothesis: rho != 0
x2pp_ortg_res <- residuals(x2pp_ortg_lm)
x2pp_ortg_fitted <- predict(x2pp_ortg_lm)
ggplot(data = NULL, aes(x = x2pp_ortg_fitted, y = x2pp_ortg_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Free Throw Percentage v Wins
ftp_w <- comb_team %>%
ggplot(aes(FTp, W)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # Weak to no linear relationship. Free Throw efficiency not a big determining factor in Wins, can afford to bypass this analysis
ftp_w## `geom_smooth()` using formula 'y ~ x'
## [1] 0.1611608
##
## Call:
## lm(formula = W ~ FTp, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -23.520 -7.355 1.762 9.610 18.637
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -5.18 53.49 -0.097 0.924
## FTp 60.21 69.68 0.864 0.395
##
## Residual standard error: 12.08 on 28 degrees of freedom
## Multiple R-squared: 0.02597, Adjusted R-squared: -0.008814
## F-statistic: 0.7466 on 1 and 28 DF, p-value: 0.3949
## 1 2 3 4 5 6 7 8
## 40.09884 43.10939 39.67737 42.80834 41.96538 42.50728 39.49673 40.27948
## 9 10 11 12 13 14 15 16
## 39.79779 43.04918 42.44707 40.09884 42.50728 36.90766 41.30306 36.66682
## 17 18 19 20 21 22 23 24
## 41.36327 42.20623 40.64074 40.52032 37.75061 41.90517 41.24285 41.72454
## 25 26 27 28 29 30
## 43.83192 38.53336 44.13298 43.22981 39.13547 41.06222
ftp_w_stdres <- rstandard(ftp_w_lm)
ftp_w_points <- 1:length(ftp_w_stdres)
ftp_w_labels <- if_else(abs(ftp_w_stdres) >= 1.5, paste(ftp_w_points), "")
ggplot(data = NULL, aes(x = ftp_w_points, y = ftp_w_stdres)) +
geom_point() +
geom_text(aes(label = ftp_w_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")ftp_w_hats <- hatvalues(ftp_w_lm)
ggplot(data = NULL, aes(x = ftp_w_points, y = ftp_w_hats)) +
geom_point()ftp_w_cook <- cooks.distance(ftp_w_lm)
ggplot(data = NULL, aes(x = ftp_w_points, y = ftp_w_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 0.1036315 1.742503 0.504
## Alternative hypothesis: rho != 0
ftp_w_res <- residuals(ftp_w_lm)
ftp_w_fitted <- predict(ftp_w_lm)
ggplot(data = NULL, aes(x = ftp_w_fitted, y = ftp_w_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Free Throw Percentage v Offensive Rating
ft_ortg <- comb_team %>%
ggplot(aes(FTp, ORtg)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # Moderate linear relationship
ft_ortg## `geom_smooth()` using formula 'y ~ x'
## [1] 0.4243103
##
## Call:
## lm(formula = ORtg ~ FTp, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.2356 -0.5181 0.3085 1.7017 4.1508
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 80.00 12.27 6.518 4.59e-07 ***
## FTp 39.64 15.99 2.480 0.0194 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.772 on 28 degrees of freedom
## Multiple R-squared: 0.18, Adjusted R-squared: 0.1508
## F-statistic: 6.148 on 1 and 28 DF, p-value: 0.01944
## 1 2 3 4 5 6 7 8
## 109.8067 111.7888 109.5292 111.5906 111.0356 111.3924 109.4103 109.9256
## 9 10 11 12 13 14 15 16
## 109.6085 111.7492 111.3527 109.8067 111.3924 107.7056 110.5995 107.5470
## 17 18 19 20 21 22 23 24
## 110.6392 111.1942 110.1635 110.0842 108.2606 110.9960 110.5599 110.8770
## 25 26 27 28 29 30
## 112.2645 108.7760 112.4627 111.8681 109.1724 110.4410
ft_ortg_stdres <- rstandard(ft_ortg_lm)
ft_ortg_points <- 1:length(ft_ortg_stdres)
ft_ortg_labels <- if_else(abs(ft_ortg_stdres) >= 1.5, paste(ft_ortg_points), "")
ggplot(data = NULL, aes(x = ft_ortg_points, y = ft_ortg_stdres)) +
geom_point() +
geom_text(aes(label = ft_ortg_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")ft_ortg_hats <- hatvalues(ft_ortg_lm)
ggplot(data = NULL, aes(x = ft_ortg_points, y = ft_ortg_hats)) +
geom_point()ft_ortg_cook <- cooks.distance(ft_ortg_lm)
ggplot(data = NULL, aes(x = ft_ortg_points, y = ft_ortg_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 -0.01352301 2.01149 0.91
## Alternative hypothesis: rho != 0
ft_ortg_res <- residuals(ft_ortg_lm)
ft_ortg_fitted <- predict(ft_ortg_lm)
ggplot(data = NULL, aes(x = ft_ortg_fitted, y = ft_ortg_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Offensive Rebounds v Offensive Rating
orb_ortg <- comb_team %>%
ggplot(aes(ORB, ORtg)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # No linear relationship
orb_ortg## `geom_smooth()` using formula 'y ~ x'
## [1] 0.117081
##
## Call:
## lm(formula = ORtg ~ ORB, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.9373 -2.3514 0.2509 2.0480 5.7247
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.067e+02 5.964e+00 17.891 <2e-16 ***
## ORB 4.366e-03 6.998e-03 0.624 0.538
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.04 on 28 degrees of freedom
## Multiple R-squared: 0.01371, Adjusted R-squared: -0.02152
## F-statistic: 0.3892 on 1 and 28 DF, p-value: 0.5378
## 1 2 3 4 5 6 7 8
## 110.8651 110.2059 110.6250 110.2495 109.8304 110.5333 110.3281 110.9393
## 9 10 11 12 13 14 15 16
## 110.7822 110.1753 110.3456 110.0225 110.1709 110.3412 109.8522 110.7167
## 17 18 19 20 21 22 23 24
## 110.0225 110.7254 110.6643 110.4373 111.1969 110.2845 110.5901 109.9614
## 25 26 27 28 29 30
## 110.9175 110.6512 110.0007 110.1273 110.2757 110.1622
orb_ortg_stdres <- rstandard(orb_ortg_lm)
orb_ortg_points <- 1:length(orb_ortg_stdres)
orb_ortg_labels <- if_else(abs(orb_ortg_stdres) >= 1.5, paste(orb_ortg_points), "")
ggplot(data = NULL, aes(x = orb_ortg_points, y = orb_ortg_stdres)) +
geom_point() +
geom_text(aes(label = orb_ortg_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")orb_ortg_hats <- hatvalues(orb_ortg_lm)
ggplot(data = NULL, aes(x = orb_ortg_points, y = orb_ortg_hats)) +
geom_point()orb_ortg_cook <- cooks.distance(orb_ortg_lm)
ggplot(data = NULL, aes(x = orb_ortg_points, y = orb_ortg_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 0.02811017 1.910839 0.804
## Alternative hypothesis: rho != 0
orb_ortg_res <- residuals(orb_ortg_lm)
orb_ortg_fitted <- predict(orb_ortg_lm)
ggplot(data = NULL, aes(x = orb_ortg_fitted, y = orb_ortg_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Defensive Rebounds v Defensive Rating
drb_drtg <- comb_team %>%
ggplot(aes(DRB, DRtg)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # Moderate linear relationship
drb_drtg## `geom_smooth()` using formula 'y ~ x'
## [1] -0.5825676
##
## Call:
## lm(formula = DRtg ~ DRB, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.9317 -2.4715 0.6419 1.4557 4.4717
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 143.355591 8.699642 16.478 6.08e-16 ***
## DRB -0.011542 0.003043 -3.793 0.00073 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.434 on 28 degrees of freedom
## Multiple R-squared: 0.3394, Adjusted R-squared: 0.3158
## F-statistic: 14.38 on 1 and 28 DF, p-value: 0.0007305
## 1 2 3 4 5 6 7 8
## 110.7507 110.4737 109.6658 111.2932 111.0508 113.1283 110.0698 110.6699
## 9 10 11 12 13 14 15 16
## 111.5933 108.8464 113.1975 111.4317 109.4696 108.9041 112.1588 110.1275
## 17 18 19 20 21 22 23 24
## 105.0838 111.6163 109.0888 110.9123 109.7582 109.8620 108.4424 113.7746
## 25 26 27 28 29 30
## 109.1003 110.8200 109.7697 109.6543 108.9503 112.4358
drb_drtg_stdres <- rstandard(drb_drtg_lm)
drb_drtg_points <- 1:length(drb_drtg_stdres)
drb_drtg_labels <- if_else(abs(drb_drtg_stdres) >= 1.5, paste(drb_drtg_points), "")
ggplot(data = NULL, aes(x = drb_drtg_points, y = drb_drtg_stdres)) +
geom_point() +
geom_text(aes(label = drb_drtg_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")drb_drtg_hats <- hatvalues(drb_drtg_lm)
ggplot(data = NULL, aes(x = drb_drtg_points, y = drb_drtg_hats)) +
geom_point()drb_drtg_cook <- cooks.distance(drb_drtg_lm)
ggplot(data = NULL, aes(x = drb_drtg_points, y = drb_drtg_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 0.1855995 1.55609 0.222
## Alternative hypothesis: rho != 0
drb_drtg_res <- residuals(drb_drtg_lm)
drb_drtg_fitted <- predict(drb_drtg_lm)
ggplot(data = NULL, aes(x = drb_drtg_fitted, y = drb_drtg_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Steals v Defensive Rating
stl_drtg <- comb_team %>%
ggplot(aes(STL, DRtg)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # Moderate linear relationship
stl_drtg## `geom_smooth()` using formula 'y ~ x'
## [1] -0.2123928
##
## Call:
## lm(formula = DRtg ~ STL, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.3024 -1.8397 -0.6048 1.9845 6.3658
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 116.058784 4.946220 23.46 <2e-16 ***
## STL -0.009035 0.007855 -1.15 0.26
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.926 on 28 degrees of freedom
## Multiple R-squared: 0.04511, Adjusted R-squared: 0.01101
## F-statistic: 1.323 on 1 and 28 DF, p-value: 0.2598
## 1 2 3 4 5 6 7 8
## 109.9603 109.6803 111.1891 110.7192 110.6108 111.2342 111.2433 110.3308
## 9 10 11 12 13 14 15 16
## 110.9180 110.4121 109.7345 109.6170 110.9903 110.4753 109.8790 110.3940
## 17 18 19 20 21 22 23 24
## 110.5024 109.8881 110.5476 111.0264 109.1382 111.1529 110.5837 109.4182
## 25 26 27 28 29 30
## 111.1258 109.9242 111.5324 109.9152 110.0687 109.8881
stl_drtg_stdres <- rstandard(stl_drtg_lm)
stl_drtg_points <- 1:length(stl_drtg_stdres)
stl_drtg_labels <- if_else(abs(stl_drtg_stdres) >= 1.5, paste(stl_drtg_points), "")
ggplot(data = NULL, aes(x = stl_drtg_points, y = stl_drtg_stdres)) +
geom_point() +
geom_text(aes(label = stl_drtg_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")stl_drtg_hats <- hatvalues(stl_drtg_lm)
ggplot(data = NULL, aes(x = stl_drtg_points, y = stl_drtg_hats)) +
geom_point()stl_drtg_cook <- cooks.distance(stl_drtg_lm)
ggplot(data = NULL, aes(x = stl_drtg_points, y = stl_drtg_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 0.05713453 1.753875 0.514
## Alternative hypothesis: rho != 0
stl_drtg_res <- residuals(stl_drtg_lm)
stl_drtg_fitted <- predict(stl_drtg_lm)
ggplot(data = NULL, aes(x = stl_drtg_fitted, y = stl_drtg_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Steals v Offensive Rating
stl_ortg <- comb_team %>%
ggplot(aes(STL, ORtg)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # No linear relationship
stl_ortg## `geom_smooth()` using formula 'y ~ x'
## [1] 0.02283556
##
## Call:
## lm(formula = ORtg ~ STL, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.8315 -2.1159 0.2053 2.1810 5.5010
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.098e+02 5.173e+00 21.222 <2e-16 ***
## STL 9.930e-04 8.216e-03 0.121 0.905
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.06 on 28 degrees of freedom
## Multiple R-squared: 0.0005215, Adjusted R-squared: -0.03517
## F-statistic: 0.01461 on 1 and 28 DF, p-value: 0.9047
## 1 2 3 4 5 6 7 8
## 110.4487 110.4795 110.3136 110.3653 110.3772 110.3087 110.3077 110.4080
## 9 10 11 12 13 14 15 16
## 110.3434 110.3990 110.4735 110.4864 110.3355 110.3921 110.4576 110.4010
## 17 18 19 20 21 22 23 24
## 110.3891 110.4566 110.3841 110.3315 110.5390 110.3176 110.3802 110.5083
## 25 26 27 28 29 30
## 110.3206 110.4527 110.2759 110.4537 110.4368 110.4566
stl_ortg_stdres <- rstandard(stl_ortg_lm)
stl_ortg_points <- 1:length(stl_ortg_stdres)
stl_ortg_labels <- if_else(abs(stl_ortg_stdres) >= 1.5, paste(stl_ortg_points), "")
ggplot(data = NULL, aes(x = stl_ortg_points, y = stl_ortg_stdres)) +
geom_point() +
geom_text(aes(label = stl_ortg_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")stl_ortg_hats <- hatvalues(stl_ortg_lm)
ggplot(data = NULL, aes(x = stl_ortg_points, y = stl_ortg_hats)) +
geom_point()stl_ortg_cook <- cooks.distance(stl_ortg_lm)
ggplot(data = NULL, aes(x = stl_ortg_points, y = stl_ortg_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 -0.004529181 1.986446 0.994
## Alternative hypothesis: rho != 0
stl_ortg_res <- residuals(stl_ortg_lm)
stl_ortg_fitted <- predict(stl_ortg_lm)
ggplot(data = NULL, aes(x = stl_ortg_fitted, y = stl_ortg_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Assists v Offensive Rating
ast_ortg <- comb_team %>%
ggplot(aes(AST, ORtg)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # Strong linear relationship. Assuming Houston would be the team with the high rating, low Assist level (James Harden effect)
ast_ortg## `geom_smooth()` using formula 'y ~ x'
## [1] 0.459058
##
## Call:
## lm(formula = ORtg ~ AST, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.0234 -1.9528 -0.1719 1.6681 7.3184
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 94.142343 5.966670 15.778 1.83e-15 ***
## AST 0.008064 0.002949 2.734 0.0107 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.72 on 28 degrees of freedom
## Multiple R-squared: 0.2107, Adjusted R-squared: 0.1825
## F-statistic: 7.476 on 1 and 28 DF, p-value: 0.01072
## 1 2 3 4 5 6 7 8
## 111.2217 111.5201 109.8992 109.5041 108.6251 107.8349 109.6089 112.2458
## 9 10 11 12 13 14 15 16
## 109.0203 113.6006 108.1816 111.3024 110.0283 111.0443 109.9718 110.1976
## 17 18 19 20 21 22 23 24
## 111.3669 110.4153 112.0120 107.4155 109.6009 111.0362 111.9394 109.9234
## 25 26 27 28 29 30
## 109.3589 110.9395 110.3750 110.9556 111.3427 111.5120
## 1 2 3 4 5 6
## -1.174898870 0.257314183 -0.112169486 0.714410886 -1.474630626 -0.053862080
## 7 8 9 10 11 12
## -0.078596860 0.291486225 -0.007717094 0.956454765 2.872334280 -0.528490669
## 13 14 15 16 17 18
## 0.888131948 -1.218041295 -1.450463592 -1.084055199 0.918004517 0.368249824
## 19 20 21 22 23 24
## -0.234640457 -1.194395319 0.263037313 -0.801952132 0.252715357 -1.507882164
## 25 26 27 28 29 30
## 2.018003162 -0.202304074 0.944301567 0.804284748 -0.166943297 -0.155898246
ast_ortg_points <- 1:length(ast_ortg_stdres)
ast_ortg_labels <- if_else(abs(ast_ortg_stdres) >= 1.5, paste(ast_ortg_points), "")
ggplot(data = NULL, aes(x = ast_ortg_points, y = ast_ortg_stdres)) +
geom_point() +
geom_text(aes(label = ast_ortg_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed") # Point 11 has a std res value of just over 2.8, may be considered an outlier or a high leverage high influence point. ast_ortg_hats <- hatvalues(ast_ortg_lm)
ggplot(data = NULL, aes(x = ast_ortg_points, y = ast_ortg_hats)) +
geom_point()ast_ortg_cook <- cooks.distance(ast_ortg_lm)
ggplot(data = NULL, aes(x = ast_ortg_points, y = ast_ortg_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 -0.109389 2.170904 0.652
## Alternative hypothesis: rho != 0
ast_ortg_res <- residuals(ast_ortg_lm)
ast_ortg_fitted <- predict(ast_ortg_lm)
ggplot(data = NULL, aes(x = ast_ortg_fitted, y = ast_ortg_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")Blocks v Defensive Rating
blk_drtg <- comb_team %>%
ggplot(aes(BLK, DRtg)) +
geom_point() +
geom_smooth(method = "lm", colour = "magenta") # Moderate linear relationship
blk_drtg## `geom_smooth()` using formula 'y ~ x'
## [1] -0.561718
##
## Call:
## lm(formula = DRtg ~ BLK, data = comb_team)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.9633 -2.2885 0.1359 1.8858 5.0243
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 121.648806 3.162619 38.465 < 2e-16 ***
## BLK -0.027687 0.007706 -3.593 0.00124 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.478 on 28 degrees of freedom
## Multiple R-squared: 0.3155, Adjusted R-squared: 0.2911
## F-statistic: 12.91 on 1 and 28 DF, p-value: 0.001238
## 1 2 3 4 5 6 7 8
## 110.0480 109.6050 112.2630 110.4356 111.9307 116.2499 111.9307 111.5985
## 9 10 11 12 13 14 15 16
## 112.4845 107.1132 110.4356 110.4633 110.9894 109.4666 109.2451 109.2451
## 17 18 19 20 21 22 23 24
## 108.1930 110.2695 109.4389 109.9650 109.8819 109.3282 109.6881 110.0757
## 25 26 27 28 29 30
## 110.2141 111.5985 110.9617 109.5497 108.2761 111.1555
blk_drtg_stdres <- rstandard(blk_drtg_lm)
blk_drtg_points <- 1:length(blk_drtg_stdres)
blk_drtg_labels <- if_else(abs(blk_drtg_stdres) >= 1.5, paste(blk_drtg_points), "")
ggplot(data = NULL, aes(x = blk_drtg_points, y = blk_drtg_stdres)) +
geom_point() +
geom_text(aes(label = blk_drtg_labels), nudge_y = 0.3) +
ylim(c(-4, 4)) +
geom_hline(yintercept = c(-3, 3), colour = "red", linetype = "dashed")blk_drtg_hats <- hatvalues(blk_drtg_lm)
ggplot(data = NULL, aes(x = blk_drtg_points, y = blk_drtg_hats)) +
geom_point()blk_drtg_cook <- cooks.distance(blk_drtg_lm)
ggplot(data = NULL, aes(x = blk_drtg_points, y = blk_drtg_cook))+
geom_point()## lag Autocorrelation D-W Statistic p-value
## 1 0.0515884 1.766672 0.478
## Alternative hypothesis: rho != 0
blk_drtg_res <- residuals(blk_drtg_lm)
blk_drtg_fitted <- predict(blk_drtg_lm)
ggplot(data = NULL, aes(x = blk_drtg_fitted, y = blk_drtg_res)) +
geom_point(colour = "dodgerblue") +
geom_hline(yintercept = 0, colour = "red", linetype = "dashed")comb_team %>%
mutate(z_pts = round((PTS - mean(PTS)) / sd(PTS)),
pts_per_game = PTS / G,
z_x3p = round((x3P - mean(x3P)) / sd(x3P))) %>%
ggplot() +
stat_qq(aes(sample = pts_per_game)) +
facet_wrap(~ z_x3p)comb_team %>%
mutate(z_pts = round((PTS - mean(PTS)) / sd(PTS)),
pts_per_game = PTS / G) %>%
ggplot() +
stat_qq(aes(sample = pts_per_game)) +
facet_wrap(~ z_pts) comb_team %>%
mutate(x3ppg = x3P / G,
ptspg = PTS / G) %>%
summarize(avg_3p = mean(x3ppg),
s_3p = sd(x3ppg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(x3ppg, ptspg))## avg_3p s_3p avg_ptspg s_ptspg r
## 1 11.36382 1.504955 111.2085 4.092142 0.4565562
comb_team %>%
mutate(x2ppg = x2P / G,
ptspg = PTS / G) %>%
summarize(avg_2p = mean(x2ppg),
s_2p = sd(x2ppg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(x2ppg, ptspg))## avg_2p s_2p avg_ptspg s_ptspg r
## 1 29.71829 2.173743 111.2085 4.092142 0.3105844
comb_team %>%
mutate(ftppg = FT / G,
ptspg = PTS / G) %>%
summarize(avg_ft = mean(ftppg),
s_ft = sd(ftppg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(ftppg, ptspg))## avg_ft s_ft avg_ptspg s_ptspg r
## 1 17.68049 1.694804 111.2085 4.092142 0.4015758
comb_team %>%
mutate(astpg = AST / G,
ptspg = PTS / G) %>%
summarize(avg_ast = mean(astpg),
s_ast = sd(astpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(astpg, ptspg))## avg_ast s_ast avg_ptspg s_ptspg r
## 1 24.58659 2.08829 111.2085 4.092142 0.5653053
comb_team %>%
mutate(stlpg = STL / G,
ptspg = PTS / G) %>%
summarize(avg_stl = mean(stlpg),
s_stl = sd(stlpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(stlpg, ptspg))## avg_stl s_stl avg_ptspg s_ptspg r
## 1 7.63374 0.8436119 111.2085 4.092142 0.171338
comb_team %>%
mutate(orbpg = ORB / G,
ptspg = PTS / G) %>%
summarize(avg_orb = mean(orbpg),
s_orb = sd(orbpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(orbpg, ptspg))## avg_orb s_orb avg_ptspg s_ptspg r
## 1 10.34715 0.9837691 111.2085 4.092142 0.1915307
comb_team %>%
mutate(drbpg = DRB / G,
ptspg = PTS / G) %>%
summarize(avg_drb = mean(drbpg),
s_drb = sd(drbpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(drbpg, ptspg))## avg_drb s_drb avg_ptspg s_ptspg r
## 1 34.81829 1.811346 111.2085 4.092142 0.5642984
New Data Frames for Specific Position
Point Guard
reg_pg_drb_ppg <- p_stats %>%
mutate(drbpg = DRB / G,
ptspg = PTS / G) %>%
ggplot(aes(drbpg, ptspg)) +
geom_point(alpha = 0.5)
reg_pg_drb_ppgreg_pg_orb_ppg <- p_stats %>%
mutate(orbpg = ORB / G,
ptspg = PTS / G) %>%
ggplot(aes(orbpg, ptspg)) +
geom_point(alpha = 0.5)
reg_pg_orb_ppgreg_pg_stl_ppg <- p_stats %>%
mutate(stlpg = STL / G,
ptspg = PTS / G) %>%
ggplot(aes(stlpg, ptspg)) +
geom_point(alpha = 0.5)
reg_pg_stl_ppgreg_pg_ast_ppg <- p_stats %>%
mutate(astpg = AST / G,
ptspg = PTS / G) %>%
ggplot(aes(astpg, ptspg)) +
geom_point(alpha = 0.5)
reg_pg_ast_ppgreg_pg_x3p_ppg <- p_stats %>%
mutate(x3ppg = x3P / G,
ptspg = PTS / G) %>%
ggplot(aes(x3ppg, ptspg)) +
geom_point(alpha = 0.5)
reg_pg_x3p_ppgreg_pg_x2p_ppg <- p_stats %>%
mutate(x2ppg = x2P / G,
ptspg = PTS / G) %>%
ggplot(aes(x2ppg, ptspg)) +
geom_point(alpha = 0.5)
reg_pg_x2p_ppgreg_pg_ft_ppg <- pg %>%
mutate(ftppg = FT / G,
ptspg = PTS / G) %>%
ggplot(aes(ftppg, ptspg)) +
geom_point(alpha = 0.5)
reg_pg_ft_ppgShooting Guard
reg_sg_drb_ppg <- p_stats %>%
mutate(drbpg = DRB / G,
ptspg = PTS / G) %>%
ggplot(aes(drbpg, ptspg)) +
geom_point(alpha = 0.5)
reg_sg_drb_ppgreg_sg_orb_ppg <- p_stats %>%
mutate(orbpg = ORB / G,
ptspg = PTS / G) %>%
ggplot(aes(orbpg, ptspg)) +
geom_point(alpha = 0.5)
reg_sg_orb_ppgreg_sg_stl_ppg <- p_stats %>%
mutate(stlpg = STL / G,
ptspg = PTS / G) %>%
ggplot(aes(stlpg, ptspg)) +
geom_point(alpha = 0.5)
reg_sg_stl_ppgreg_sg_ast_ppg <- p_stats %>%
mutate(astpg = AST / G,
ptspg = PTS / G) %>%
ggplot(aes(astpg, ptspg)) +
geom_point(alpha = 0.5)
reg_sg_ast_ppgreg_sg_x3p_ppg <- p_stats %>%
mutate(x3ppg = x3P / G,
ptspg = PTS / G) %>%
ggplot(aes(x3ppg, ptspg)) +
geom_point(alpha = 0.5)
reg_sg_x3p_ppgreg_sg_x2p_ppg <- p_stats %>%
mutate(x2ppg = x2P / G,
ptspg = PTS / G) %>%
ggplot(aes(x2ppg, ptspg)) +
geom_point(alpha = 0.5)
reg_sg_x2p_ppgreg_sg_ft_ppg <- pg %>%
mutate(ftppg = FT / G,
ptspg = PTS / G) %>%
ggplot(aes(ftppg, ptspg)) +
geom_point(alpha = 0.5)
reg_sg_ft_ppgSmall Forward
reg_sf_drb_ppg <- p_stats %>%
mutate(drbpg = DRB / G,
ptspg = PTS / G) %>%
ggplot(aes(drbpg, ptspg)) +
geom_point(alpha = 0.5)
reg_sf_drb_ppgreg_sf_orb_ppg <- p_stats %>%
mutate(orbpg = ORB / G,
ptspg = PTS / G) %>%
ggplot(aes(orbpg, ptspg)) +
geom_point(alpha = 0.5)
reg_sf_orb_ppgreg_sf_stl_ppg <- p_stats %>%
mutate(stlpg = STL / G,
ptspg = PTS / G) %>%
ggplot(aes(stlpg, ptspg)) +
geom_point(alpha = 0.5)
reg_sf_stl_ppgreg_sf_ast_ppg <- p_stats %>%
mutate(astpg = AST / G,
ptspg = PTS / G) %>%
ggplot(aes(astpg, ptspg)) +
geom_point(alpha = 0.5)
reg_sf_ast_ppgreg_sf_x3p_ppg <- p_stats %>%
mutate(x3ppg = x3P / G,
ptspg = PTS / G) %>%
ggplot(aes(x3ppg, ptspg)) +
geom_point(alpha = 0.5)
reg_sf_x3p_ppgreg_sf_x2p_ppg <- p_stats %>%
mutate(x2ppg = x2P / G,
ptspg = PTS / G) %>%
ggplot(aes(x2ppg, ptspg)) +
geom_point(alpha = 0.5)
reg_sf_x2p_ppgreg_sf_ft_ppg <- pg %>%
mutate(ftppg = FT / G,
ptspg = PTS / G) %>%
ggplot(aes(ftppg, ptspg)) +
geom_point(alpha = 0.5)
reg_sf_ft_ppgPower Forward
reg_pf_drb_ppg <- p_stats %>%
mutate(drbpg = DRB / G,
ptspg = PTS / G) %>%
ggplot(aes(drbpg, ptspg)) +
geom_point(alpha = 0.5)
reg_pf_drb_ppgreg_pf_orb_ppg <- p_stats %>%
mutate(orbpg = ORB / G,
ptspg = PTS / G) %>%
ggplot(aes(orbpg, ptspg)) +
geom_point(alpha = 0.5)
reg_pf_orb_ppgreg_pf_stl_ppg <- p_stats %>%
mutate(stlpg = STL / G,
ptspg = PTS / G) %>%
ggplot(aes(stlpg, ptspg)) +
geom_point(alpha = 0.5)
reg_pf_stl_ppgreg_pf_ast_ppg <- p_stats %>%
mutate(astpg = AST / G,
ptspg = PTS / G) %>%
ggplot(aes(astpg, ptspg)) +
geom_point(alpha = 0.5)
reg_pf_ast_ppgreg_pf_x3p_ppg <- p_stats %>%
mutate(x3ppg = x3P / G,
ptspg = PTS / G) %>%
ggplot(aes(x3ppg, ptspg)) +
geom_point(alpha = 0.5)
reg_pf_x3p_ppgreg_pf_x2p_ppg <- p_stats %>%
mutate(x2ppg = x2P / G,
ptspg = PTS / G) %>%
ggplot(aes(x2ppg, ptspg)) +
geom_point(alpha = 0.5)
reg_pf_x2p_ppgreg_pf_ft_ppg <- pg %>%
mutate(ftppg = FT / G,
ptspg = PTS / G) %>%
ggplot(aes(ftppg, ptspg)) +
geom_point(alpha = 0.5)
reg_pf_ft_ppgCentres
reg_c_drb_ppg <- p_stats %>%
mutate(drbpg = DRB / G,
ptspg = PTS / G) %>%
ggplot(aes(drbpg, ptspg)) +
geom_point(alpha = 0.5)
reg_c_drb_ppgreg_c_orb_ppg <- p_stats %>%
mutate(orbpg = ORB / G,
ptspg = PTS / G) %>%
ggplot(aes(orbpg, ptspg)) +
geom_point(alpha = 0.5)
reg_c_orb_ppgreg_c_stl_ppg <- p_stats %>%
mutate(stlpg = STL / G,
ptspg = PTS / G) %>%
ggplot(aes(stlpg, ptspg)) +
geom_point(alpha = 0.5)
reg_c_stl_ppgreg_c_ast_ppg <- p_stats %>%
mutate(astpg = AST / G,
ptspg = PTS / G) %>%
ggplot(aes(astpg, ptspg)) +
geom_point(alpha = 0.5)
reg_c_ast_ppgreg_c_x3p_ppg <- p_stats %>%
mutate(x3ppg = x3P / G,
ptspg = PTS / G) %>%
ggplot(aes(x3ppg, ptspg)) +
geom_point(alpha = 0.5)
reg_c_x3p_ppgreg_c_x2p_ppg <- p_stats %>%
mutate(x2ppg = x2P / G,
ptspg = PTS / G) %>%
ggplot(aes(x2ppg, ptspg)) +
geom_point(alpha = 0.5)
reg_c_x2p_ppgreg_c_ft_ppg <- pg %>%
mutate(ftppg = FT / G,
ptspg = PTS / G) %>%
ggplot(aes(ftppg, ptspg)) +
geom_point(alpha = 0.5)
reg_c_ft_ppgPoint Guard
sum_stats_pg_drb_ppg <- pg %>%
mutate(drbpg = DRB / G,
ptspg = PTS / G) %>%
summarize(avg_drb = mean(drbpg),
s_drb = sd(drbpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(drbpg, ptspg))sum_stats_pg_orb_ppg <- pg %>%
mutate(orbpg = ORB / G,
ptspg = PTS / G) %>%
summarize(avg_orb = mean(orbpg),
s_orb = sd(orbpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(orbpg, ptspg))sum_stats_pg_stl_ppg <- pg %>%
mutate(stlpg = STL / G,
ptspg = PTS / G) %>%
summarize(avg_stl = mean(stlpg),
s_stl = sd(stlpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(stlpg, ptspg))sum_stats_pg_ast_ppg <- pg %>%
mutate(astpg = AST / G,
ptspg = PTS / G) %>%
summarize(avg_ast = mean(astpg),
s_ast = sd(astpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(astpg, ptspg))sum_stats_pg_x3p_ppg <- pg %>%
mutate(x3ppg = x3P / G,
ptspg = PTS / G) %>%
summarize(avg_3p = mean(x3ppg),
s_3p = sd(x3ppg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(x3ppg, ptspg))sum_stats_pg_x2p_ppg <- pg %>%
mutate(x2ppg = x2P / G,
ptspg = PTS / G) %>%
summarize(avg_2p = mean(x2ppg),
s_2p = sd(x2ppg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(x2ppg, ptspg))sum_stats_pg_ft_ppg <- pg %>%
mutate(ftppg = FT / G,
ptspg = PTS / G) %>%
summarize(avg_ft = mean(ftppg),
s_ft = sd(ftppg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(ftppg, ptspg))Shooting Guard
sum_stats_sg_drb_ppg <- sg %>%
mutate(drbpg = DRB / G,
ptspg = PTS / G) %>%
summarize(avg_drb = mean(drbpg),
s_drb = sd(drbpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(drbpg, ptspg))sum_stats_sg_orb_ppg <- sg %>%
mutate(orbpg = ORB / G,
ptspg = PTS / G) %>%
summarize(avg_orb = mean(orbpg),
s_orb = sd(orbpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(orbpg, ptspg))sum_stats_sg_stl_ppg <- sg %>%
mutate(stlpg = STL / G,
ptspg = PTS / G) %>%
summarize(avg_stl = mean(stlpg),
s_stl = sd(stlpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(stlpg, ptspg))sum_stats_sg_ast_ppg <- sg %>%
mutate(astpg = AST / G,
ptspg = PTS / G) %>%
summarize(avg_ast = mean(astpg),
s_ast = sd(astpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(astpg, ptspg))sum_stats_sg_x3p_ppg <- sg %>%
mutate(x3ppg = x3P / G,
ptspg = PTS / G) %>%
summarize(avg_3p = mean(x3ppg),
s_3p = sd(x3ppg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(x3ppg, ptspg))sum_stats_sg_x2p_ppg <- sg %>%
mutate(x2ppg = x2P / G,
ptspg = PTS / G) %>%
summarize(avg_2p = mean(x2ppg),
s_2p = sd(x2ppg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(x2ppg, ptspg))sum_stats_sg_ft_ppg <- sg %>%
mutate(ftppg = FT / G,
ptspg = PTS / G) %>%
summarize(avg_ft = mean(ftppg),
s_ft = sd(ftppg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(ftppg, ptspg))Small Forward
sum_stats_sf_drb_ppg <- sf %>%
mutate(drbpg = DRB / G,
ptspg = PTS / G) %>%
summarize(avg_drb = mean(drbpg),
s_drb = sd(drbpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(drbpg, ptspg))sum_stats_sf_orb_ppg <- sf %>%
mutate(orbpg = ORB / G,
ptspg = PTS / G) %>%
summarize(avg_orb = mean(orbpg),
s_orb = sd(orbpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(orbpg, ptspg))sum_stats_sf_stl_ppg <- sf %>%
mutate(stlpg = STL / G,
ptspg = PTS / G) %>%
summarize(avg_stl = mean(stlpg),
s_stl = sd(stlpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(stlpg, ptspg))sum_stats_sf_ast_ppg <- sf %>%
mutate(astpg = AST / G,
ptspg = PTS / G) %>%
summarize(avg_ast = mean(astpg),
s_ast = sd(astpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(astpg, ptspg))sum_stats_sf_x3p_ppg <- sf %>%
mutate(x3ppg = x3P / G,
ptspg = PTS / G) %>%
summarize(avg_3p = mean(x3ppg),
s_3p = sd(x3ppg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(x3ppg, ptspg))sum_stats_sf_x2p_ppg <- sf %>%
mutate(x2ppg = x2P / G,
ptspg = PTS / G) %>%
summarize(avg_2p = mean(x2ppg),
s_2p = sd(x2ppg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(x2ppg, ptspg))sum_stats_sf_ft_ppg <- sf %>%
mutate(ftppg = FT / G,
ptspg = PTS / G) %>%
summarize(avg_ft = mean(ftppg),
s_ft = sd(ftppg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(ftppg, ptspg))Power Forward
sum_stats_pf_drb_ppg <- pf %>%
mutate(drbpg = DRB / G,
ptspg = PTS / G) %>%
summarize(avg_drb = mean(drbpg),
s_drb = sd(drbpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(drbpg, ptspg))sum_stats_pf_orb_ppg <- pf %>%
mutate(orbpg = ORB / G,
ptspg = PTS / G) %>%
summarize(avg_orb = mean(orbpg),
s_orb = sd(orbpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(orbpg, ptspg))sum_stats_pf_stl_ppg <- pf %>%
mutate(stlpg = STL / G,
ptspg = PTS / G) %>%
summarize(avg_stl = mean(stlpg),
s_stl = sd(stlpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(stlpg, ptspg))sum_stats_pf_ast_ppg <- pf %>%
mutate(astpg = AST / G,
ptspg = PTS / G) %>%
summarize(avg_ast = mean(astpg),
s_ast = sd(astpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(astpg, ptspg))sum_stats_pf_x3p_ppg <- pf %>%
mutate(x3ppg = x3P / G,
ptspg = PTS / G) %>%
summarize(avg_3p = mean(x3ppg),
s_3p = sd(x3ppg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(x3ppg, ptspg))sum_stats_pf_x2p_ppg <- pf %>%
mutate(x2ppg = x2P / G,
ptspg = PTS / G) %>%
summarize(avg_2p = mean(x2ppg),
s_2p = sd(x2ppg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(x2ppg, ptspg))sum_stats_pf_ft_ppg <- pf %>%
mutate(ftppg = FT / G,
ptspg = PTS / G) %>%
summarize(avg_ft = mean(ftppg),
s_ft = sd(ftppg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(ftppg, ptspg))Centres
sum_stats_c_drb_ppg <- centres %>%
mutate(drbpg = DRB / G,
ptspg = PTS / G) %>%
summarize(avg_drb = mean(drbpg),
s_drb = sd(drbpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(drbpg, ptspg))sum_stats_c_orb_ppg <- centres %>%
mutate(orbpg = ORB / G,
ptspg = PTS / G) %>%
summarize(avg_orb = mean(orbpg),
s_orb = sd(orbpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(orbpg, ptspg))sum_stats_c_stl_ppg <- centres %>%
mutate(stlpg = STL / G,
ptspg = PTS / G) %>%
summarize(avg_stl = mean(stlpg),
s_stl = sd(stlpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(stlpg, ptspg))sum_stats_c_ast_ppg <- centres %>%
mutate(astpg = AST / G,
ptspg = PTS / G) %>%
summarize(avg_ast = mean(astpg),
s_ast = sd(astpg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(astpg, ptspg))sum_stats_c_x3p_ppg <- centres %>%
mutate(x3ppg = x3P / G,
ptspg = PTS / G) %>%
summarize(avg_3p = mean(x3ppg),
s_3p = sd(x3ppg),
avg_ptspg = mean(ptspg),
s_ptspg = sd(ptspg),
r = cor(x3ppg, ptspg))Point Guards
regline_pg_drb_ppg <- sum_stats_pg_drb_ppg %>%
summarise(slope = r * s_ptspg / s_drb,
intercept = avg_ptspg - slope * avg_drb)
reg_pg_drb_ppg +
geom_abline(intercept = regline_pg_drb_ppg$intercept, slope = regline_pg_drb_ppg$slope)regline_pg_orb_ppg <- sum_stats_pg_orb_ppg %>%
summarise(slope = r * s_ptspg / s_orb,
intercept = avg_ptspg - slope * avg_orb)
reg_pg_orb_ppg +
geom_abline(intercept = regline_pg_orb_ppg$intercept, slope = regline_pg_orb_ppg$slope)regline_pg_stl_ppg <- sum_stats_pg_stl_ppg %>%
summarise(slope = r * s_ptspg / s_stl,
intercept = avg_ptspg - slope * avg_stl)
reg_pg_stl_ppg +
geom_abline(intercept = regline_pg_stl_ppg$intercept, slope = regline_pg_stl_ppg$slope)regline_pg_ast_ppg <- sum_stats_pg_ast_ppg %>%
summarise(slope = r * s_ptspg / s_ast,
intercept = avg_ptspg - slope * avg_ast)
reg_pg_ast_ppg +
geom_abline(intercept = regline_pg_ast_ppg$intercept, slope = regline_pg_ast_ppg$slope)regline_pg_x3p_ppg <- sum_stats_pg_x3p_ppg %>%
summarise(slope = r * s_ptspg / s_3p,
intercept = avg_ptspg - slope * avg_3p)
reg_pg_x3p_ppg +
geom_abline(intercept = regline_pg_x3p_ppg$intercept, slope = regline_pg_x3p_ppg$slope)regline_pg_x2p_ppg <- sum_stats_pg_x2p_ppg %>%
summarise(slope = r * s_ptspg / s_2p,
intercept = avg_ptspg - slope * avg_2p)
reg_pg_x2p_ppg +
geom_abline(intercept = regline_pg_x2p_ppg$intercept, slope = regline_pg_x2p_ppg$slope)regline_pg_ft_ppg <- sum_stats_pg_ft_ppg %>%
summarise(slope = r * s_ptspg / s_ft,
intercept = avg_ptspg - slope * avg_ft)
reg_pg_ft_ppg +
geom_abline(intercept = regline_pg_ft_ppg$intercept, slope = regline_pg_ft_ppg$slope)Shooting Guard
regline_sg_drb_ppg <- sum_stats_sg_drb_ppg %>%
summarise(slope = r * s_ptspg / s_drb,
intercept = avg_ptspg - slope * avg_drb)
reg_sg_drb_ppg +
geom_abline(intercept = regline_sg_drb_ppg$intercept, slope = regline_sg_drb_ppg$slope)regline_sg_orb_ppg <- sum_stats_sg_orb_ppg %>%
summarise(slope = r * s_ptspg / s_orb,
intercept = avg_ptspg - slope * avg_orb)
reg_sg_orb_ppg +
geom_abline(intercept = regline_sg_orb_ppg$intercept, slope = regline_sg_orb_ppg$slope)regline_sg_stl_ppg <- sum_stats_sg_stl_ppg %>%
summarise(slope = r * s_ptspg / s_stl,
intercept = avg_ptspg - slope * avg_stl)
reg_sg_stl_ppg +
geom_abline(intercept = regline_sg_stl_ppg$intercept, slope = regline_sg_stl_ppg$slope)regline_sg_ast_ppg <- sum_stats_sg_ast_ppg %>%
summarise(slope = r * s_ptspg / s_ast,
intercept = avg_ptspg - slope * avg_ast)
reg_sg_ast_ppg +
geom_abline(intercept = regline_sg_ast_ppg$intercept, slope = regline_sg_ast_ppg$slope)regline_sg_x3p_ppg <- sum_stats_sg_x3p_ppg %>%
summarise(slope = r * s_ptspg / s_3p,
intercept = avg_ptspg - slope * avg_3p)
reg_sg_x3p_ppg +
geom_abline(intercept = regline_sg_x3p_ppg$intercept, slope = regline_sg_x3p_ppg$slope)regline_sg_x2p_ppg <- sum_stats_sg_x2p_ppg %>%
summarise(slope = r * s_ptspg / s_2p,
intercept = avg_ptspg - slope * avg_2p)
reg_sg_x2p_ppg +
geom_abline(intercept = regline_sg_x2p_ppg$intercept, slope = regline_sg_x2p_ppg$slope)regline_sg_ft_ppg <- sum_stats_sg_ft_ppg %>%
summarise(slope = r * s_ptspg / s_ft,
intercept = avg_ptspg - slope * avg_ft)
reg_sg_ft_ppg +
geom_abline(intercept = regline_sg_ft_ppg$intercept, slope = regline_sg_ft_ppg$slope)Small Forwards
regline_sf_drb_ppg <- sum_stats_sf_drb_ppg %>%
summarise(slope = r * s_ptspg / s_drb,
intercept = avg_ptspg - slope * avg_drb)
reg_sf_drb_ppg +
geom_abline(intercept = regline_sf_drb_ppg$intercept, slope = regline_sf_drb_ppg$slope)regline_sf_orb_ppg <- sum_stats_sf_orb_ppg %>%
summarise(slope = r * s_ptspg / s_orb,
intercept = avg_ptspg - slope * avg_orb)
reg_sf_orb_ppg +
geom_abline(intercept = regline_sf_orb_ppg$intercept, slope = regline_sf_orb_ppg$slope)regline_sf_stl_ppg <- sum_stats_sf_stl_ppg %>%
summarise(slope = r * s_ptspg / s_stl,
intercept = avg_ptspg - slope * avg_stl)
reg_sf_stl_ppg +
geom_abline(intercept = regline_sf_stl_ppg$intercept, slope = regline_sf_stl_ppg$slope)regline_sf_ast_ppg <- sum_stats_sf_ast_ppg %>%
summarise(slope = r * s_ptspg / s_ast,
intercept = avg_ptspg - slope * avg_ast)
reg_sf_ast_ppg +
geom_abline(intercept = regline_sf_ast_ppg$intercept, slope = regline_sf_ast_ppg$slope)regline_sf_x3p_ppg <- sum_stats_sf_x3p_ppg %>%
summarise(slope = r * s_ptspg / s_3p,
intercept = avg_ptspg - slope * avg_3p)
reg_sf_x3p_ppg +
geom_abline(intercept = regline_sf_x3p_ppg$intercept, slope = regline_sf_x3p_ppg$slope)regline_sf_x2p_ppg <- sum_stats_sf_x2p_ppg %>%
summarise(slope = r * s_ptspg / s_2p,
intercept = avg_ptspg - slope * avg_2p)
reg_sf_x2p_ppg +
geom_abline(intercept = regline_sf_x2p_ppg$intercept, slope = regline_sf_x2p_ppg$slope)regline_sf_ft_ppg <- sum_stats_sf_ft_ppg %>%
summarise(slope = r * s_ptspg / s_ft,
intercept = avg_ptspg - slope * avg_ft)
reg_sf_ft_ppg +
geom_abline(intercept = regline_sf_ft_ppg$intercept, slope = regline_sf_ft_ppg$slope)Centres
regline_c_drb_ppg <- sum_stats_c_drb_ppg %>%
summarise(slope = r * s_ptspg / s_drb,
intercept = avg_ptspg - slope * avg_drb)
reg_c_drb_ppg +
geom_abline(intercept = regline_c_drb_ppg$intercept, slope = regline_c_drb_ppg$slope)regline_c_orb_ppg <- sum_stats_c_orb_ppg %>%
summarise(slope = r * s_ptspg / s_orb,
intercept = avg_ptspg - slope * avg_orb)
reg_c_orb_ppg +
geom_abline(intercept = regline_c_orb_ppg$intercept, slope = regline_c_orb_ppg$slope)regline_c_stl_ppg <- sum_stats_c_stl_ppg %>%
summarise(slope = r * s_ptspg / s_stl,
intercept = avg_ptspg - slope * avg_stl)
reg_c_stl_ppg +
geom_abline(intercept = regline_c_stl_ppg$intercept, slope = regline_c_stl_ppg$slope)regline_c_ast_ppg <- sum_stats_c_ast_ppg %>%
summarise(slope = r * s_ptspg / s_ast,
intercept = avg_ptspg - slope * avg_ast)
reg_c_ast_ppg +
geom_abline(intercept = regline_c_ast_ppg$intercept, slope = regline_c_ast_ppg$slope)regline_c_x3p_ppg <- sum_stats_c_x3p_ppg %>%
summarise(slope = r * s_ptspg / s_3p,
intercept = avg_ptspg - slope * avg_3p)
reg_c_x3p_ppg +
geom_abline(intercept = regline_c_x3p_ppg$intercept, slope = regline_c_x3p_ppg$slope)regline_c_x2p_ppg <- sum_stats_c_x2p_ppg %>%
summarise(slope = r * s_ptspg / s_2p,
intercept = avg_ptspg - slope * avg_2p)
reg_c_x2p_ppg +
geom_abline(intercept = regline_c_x2p_ppg$intercept, slope = regline_c_x2p_ppg$slope)regline_c_ft_ppg <- sum_stats_c_ft_ppg %>%
summarise(slope = r * s_ptspg / s_ft,
intercept = avg_ptspg - slope * avg_ft)
reg_c_ft_ppg +
geom_abline(intercept = regline_c_ft_ppg$intercept, slope = regline_c_ft_ppg$slope)Points = 3-Point FG + 2-Point FG + Free Throw
x3pts_ppg <- ggplot(data = p_stats, aes(x = x3P, y = PTS)) +
geom_point(colour = "dodgerblue") +
geom_smooth(method = "lm", colour = "magenta") # 3pt FG makes to total points
x3pts_ppg## `geom_smooth()` using formula 'y ~ x'
x2pts_ppg <- ggplot(data = p_stats, aes(x = x2P, y = PTS)) +
geom_point(colour = "dodgerblue") +
geom_smooth(method = "lm", colour = "magenta") # 2pt FG makes to total points
x2pts_ppg## `geom_smooth()` using formula 'y ~ x'
ftpts_ppg <- ggplot(data = p_stats, aes(x = FT, y = PTS)) +
geom_point(colour = "dodgerblue") +
geom_smooth(method = "lm", colour = "magenta") # FT makes to total points
ftpts_ppg## `geom_smooth()` using formula 'y ~ x'
Combined Players
overall_tidy_combined <- lm(PTSpm ~ MP + x3P + x2P + FT, data = p_stats)
tidy(overall_tidy_combined, conf.int = TRUE)## # A tibble: 5 x 7
## term estimate std.error statistic p.value conf.low conf.high
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) 0.382 0.00622 61.4 2.80e-198 0.370 0.394
## 2 MP -0.000187 0.00000924 -20.2 4.18e- 62 -0.000205 -0.000169
## 3 x3P 0.00140 0.0000778 18.0 9.47e- 53 0.00125 0.00155
## 4 x2P 0.00105 0.0000538 19.6 1.97e- 59 0.000948 0.00116
## 5 FT 0.000319 0.0000594 5.37 1.42e- 7 0.000202 0.000435
overall_tidy_ppg <- lm(PPG ~ G + x3P + x2P + FT, data = p_stats)
tidy(overall_tidy_ppg, conf.int = TRUE)## # A tibble: 5 x 7
## term estimate std.error statistic p.value conf.low conf.high
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) 6.63 0.253 26.2 5.24e-87 6.13 7.12
## 2 G -0.100 0.00542 -18.5 8.34e-55 -0.111 -0.0896
## 3 x3P 0.0427 0.00150 28.4 8.04e-96 0.0397 0.0456
## 4 x2P 0.0297 0.00106 27.9 7.56e-94 0.0276 0.0317
## 5 FT 0.0136 0.00146 9.31 1.09e-18 0.0107 0.0165
overall_tidy_pts <- lm(PTS ~ AST + DRB + ORB + BLK + TOV, data = p_stats)
tidy(overall_tidy_pts, conf.int = TRUE)## # A tibble: 6 x 7
## term estimate std.error statistic p.value conf.low conf.high
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) 40.0 18.5 2.16 3.12e- 2 3.63 76.3
## 2 AST -0.272 0.181 -1.50 1.34e- 1 -0.627 0.0842
## 3 DRB 0.842 0.166 5.09 5.80e- 7 0.517 1.17
## 4 ORB -0.632 0.315 -2.00 4.58e- 2 -1.25 -0.0119
## 5 BLK 0.533 0.524 1.02 3.10e- 1 -0.498 1.56
## 6 TOV 6.33 0.463 13.7 8.22e-35 5.42 7.24
Point Guard
pg_overall_tidy <- lm(PTSpm ~ MP + x3P + x2P + FT, data = pg)
tidy(pg_overall_tidy, conf.int = TRUE)## # A tibble: 5 x 7
## term estimate std.error statistic p.value conf.low conf.high
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) 0.363 0.0142 25.4 1.23e-38 0.334 0.391
## 2 MP -0.000162 0.0000196 -8.29 3.41e-12 -0.000201 -0.000123
## 3 x3P 0.00125 0.000150 8.33 2.83e-12 0.000952 0.00155
## 4 x2P 0.00102 0.000112 9.13 8.48e-14 0.000800 0.00125
## 5 FT 0.000264 0.000107 2.47 1.56e- 2 0.0000514 0.000477
pg_overall_tidy_ppg <- lm(PPG ~ G + x3P + x2P + FT, data = pg)
tidy(pg_overall_tidy_ppg, conf.int = TRUE)## # A tibble: 5 x 7
## term estimate std.error statistic p.value conf.low conf.high
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) 7.10 0.630 11.3 8.59e-18 5.85 8.36
## 2 G -0.106 0.0136 -7.80 2.90e-11 -0.133 -0.0790
## 3 x3P 0.0423 0.00397 10.6 1.20e-16 0.0344 0.0502
## 4 x2P 0.0318 0.00252 12.7 2.70e-20 0.0268 0.0368
## 5 FT 0.00954 0.00306 3.11 2.61e- 3 0.00344 0.0156
pg_overall_tidy_pts <- lm(PTS ~ AST + DRB + ORB + BLK + TOV, data = pg)
tidy(pg_overall_tidy_pts, conf.int = TRUE)## # A tibble: 6 x 7
## term estimate std.error statistic p.value conf.low conf.high
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) 17.0 50.1 0.339 0.735 -82.8 117.
## 2 AST 0.228 0.430 0.530 0.598 -0.628 1.08
## 3 DRB 0.152 0.616 0.246 0.806 -1.08 1.38
## 4 ORB -1.15 2.11 -0.543 0.589 -5.36 3.06
## 5 BLK 2.85 3.12 0.911 0.365 -3.38 9.07
## 6 TOV 5.78 0.917 6.30 0.0000000191 3.95 7.61
Shooting Guard
sg_overall_tidy <- lm(PTSpm ~ MP + x3P + x2P + FT, data = sg)
tidy(sg_overall_tidy, conf.int = TRUE)## # A tibble: 5 x 7
## term estimate std.error statistic p.value conf.low conf.high
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) 0.376 0.0119 31.6 1.77e-49 0.353 0.400
## 2 MP -0.000173 0.0000181 -9.56 3.19e-15 -0.000210 -0.000137
## 3 x3P 0.00145 0.000160 9.04 3.76e-14 0.00113 0.00177
## 4 x2P 0.000842 0.000112 7.51 4.78e-11 0.000619 0.00107
## 5 FT 0.000494 0.000154 3.21 1.87e- 3 0.000188 0.000800
sg_overall_tidy_ppg <- lm(PPG ~ G + x3P + x2P + FT, data = sg)
tidy(sg_overall_tidy_ppg, conf.int = TRUE)## # A tibble: 5 x 7
## term estimate std.error statistic p.value conf.low conf.high
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) 5.87 0.486 12.1 2.84e-20 4.90 6.83
## 2 G -0.0860 0.0109 -7.86 9.58e-12 -0.108 -0.0643
## 3 x3P 0.0428 0.00312 13.7 1.96e-23 0.0365 0.0490
## 4 x2P 0.0253 0.00258 9.82 9.48e-16 0.0202 0.0304
## 5 FT 0.0190 0.00382 4.98 3.13e- 6 0.0115 0.0266
sg_overall_tidy_pts <- lm(PTS ~ AST + DRB + ORB + BLK + TOV, data = sg)
tidy(sg_overall_tidy_pts, conf.int = TRUE)## # A tibble: 6 x 7
## term estimate std.error statistic p.value conf.low conf.high
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) -13.8 38.5 -0.359 0.720 -90.4 62.7
## 2 AST 0.246 0.474 0.519 0.605 -0.696 1.19
## 3 DRB 2.20 0.462 4.76 0.00000781 1.28 3.11
## 4 ORB 1.99 1.46 1.36 0.177 -0.912 4.88
## 5 BLK -3.29 2.20 -1.49 0.139 -7.67 1.09
## 6 TOV 4.32 0.946 4.56 0.0000167 2.44 6.20
Small Forward
sf_overall_tidy <- lm(PTSpm ~ MP + x3P + x2P + FT, data = sf)
tidy(sf_overall_tidy, conf.int = TRUE)## # A tibble: 5 x 7
## term estimate std.error statistic p.value conf.low conf.high
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) 0.346 0.0119 29.0 1.25e-34 0.322 0.370
## 2 MP -0.000163 0.0000192 -8.49 1.63e-11 -0.000201 -0.000124
## 3 x3P 0.00131 0.000230 5.69 5.36e- 7 0.000848 0.00177
## 4 x2P 0.00106 0.000132 8.03 8.68e-11 0.000794 0.00132
## 5 FT 0.000294 0.000152 1.94 5.82e- 2 -0.0000106 0.000600
sf_overall_tidy_ppg <- lm(PPG ~ G + x3P + x2P + FT, data = sf)
tidy(sf_overall_tidy_ppg, conf.int = TRUE)## # A tibble: 5 x 7
## term estimate std.error statistic p.value conf.low conf.high
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) 7.34 0.569 12.9 4.05e-18 6.20 8.48
## 2 G -0.117 0.0125 -9.36 6.69e-13 -0.143 -0.0923
## 3 x3P 0.0438 0.00535 8.18 5.03e-11 0.0331 0.0545
## 4 x2P 0.0364 0.00335 10.9 3.37e-15 0.0296 0.0431
## 5 FT 0.00819 0.00456 1.80 7.79e- 2 -0.000946 0.0173
sf_overall_tidy_pts <- lm(PTS ~ AST + DRB + ORB + BLK + TOV, data = sf)
tidy(sf_overall_tidy_pts, conf.int = TRUE)## # A tibble: 6 x 7
## term estimate std.error statistic p.value conf.low conf.high
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) -73.4 43.6 -1.68 0.0982 -161. 14.1
## 2 AST -0.642 0.532 -1.21 0.233 -1.71 0.425
## 3 DRB 1.77 0.504 3.51 0.000920 0.758 2.78
## 4 ORB -0.497 1.06 -0.468 0.642 -2.63 1.63
## 5 BLK 0.833 1.58 0.528 0.600 -2.33 4.00
## 6 TOV 6.12 1.31 4.67 0.0000212 3.49 8.75
Power Forward
pf_overall_tidy <- lm(PTSpm ~ MP + x3P + x2P + FT, data = pf)
tidy(pf_overall_tidy, conf.int = TRUE)## # A tibble: 5 x 7
## term estimate std.error statistic p.value conf.low conf.high
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) 0.413 0.0177 23.4 3.03e-34 0.378 0.448
## 2 MP -0.000246 0.0000345 -7.13 8.41e-10 -0.000314 -0.000177
## 3 x3P 0.00184 0.000395 4.66 1.54e- 5 0.00105 0.00263
## 4 x2P 0.00125 0.000207 6.06 6.79e- 8 0.000840 0.00167
## 5 FT 0.000295 0.000238 1.24 2.19e- 1 -0.000179 0.000770
pf_overall_tidy_ppg <- lm(PPG ~ G + x3P + x2P + FT, data = pf)
tidy(pf_overall_tidy_ppg, conf.int = TRUE)## # A tibble: 5 x 7
## term estimate std.error statistic p.value conf.low conf.high
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) 6.24 0.641 9.74 1.61e-14 4.96 7.52
## 2 G -0.101 0.0155 -6.51 1.07e- 8 -0.132 -0.0700
## 3 x3P 0.0479 0.00564 8.49 2.79e-12 0.0366 0.0592
## 4 x2P 0.0288 0.00314 9.16 1.74e-13 0.0225 0.0351
## 5 FT 0.0152 0.00454 3.34 1.35e- 3 0.00612 0.0242
pf_overall_tidy_pts <- lm(PTS ~ AST + DRB + ORB + BLK + TOV, data = pf)
tidy(pf_overall_tidy_pts, conf.int = TRUE)## # A tibble: 6 x 7
## term estimate std.error statistic p.value conf.low conf.high
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) -23.2 30.1 -0.772 4.43e- 1 -83.3 36.8
## 2 AST -1.51 0.395 -3.83 2.81e- 4 -2.30 -0.725
## 3 DRB 1.25 0.257 4.88 6.96e- 6 0.741 1.77
## 4 ORB 0.0810 0.544 0.149 8.82e- 1 -1.01 1.17
## 5 BLK 0.0720 0.929 0.0775 9.38e- 1 -1.78 1.93
## 6 TOV 6.74 0.910 7.40 2.84e-10 4.92 8.55
Centres
c_overall_tidy <- lm(PTSpm ~ MP + x3P + x2P + FT, data = centres)
tidy(c_overall_tidy, conf.int = TRUE)## # A tibble: 5 x 7
## term estimate std.error statistic p.value conf.low conf.high
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) 0.400 0.0122 32.8 3.56e-42 0.376 0.425
## 2 MP -0.000225 0.0000210 -10.7 4.89e-16 -0.000267 -0.000183
## 3 x3P 0.00175 0.000198 8.82 1.03e-12 0.00135 0.00214
## 4 x2P 0.00116 0.000107 10.8 3.19e-16 0.000947 0.00137
## 5 FT 0.000367 0.000108 3.38 1.22e- 3 0.000150 0.000584
c_overall_tidy_ppg <- lm(PPG ~ G + x3P + x2P + FT, data = centres)
tidy(c_overall_tidy_ppg, conf.int = TRUE)## # A tibble: 5 x 7
## term estimate std.error statistic p.value conf.low conf.high
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) 7.35 0.568 12.9 1.17e-19 6.22 8.49
## 2 G -0.115 0.0116 -9.90 1.31e-14 -0.138 -0.0919
## 3 x3P 0.0433 0.00452 9.58 4.77e-14 0.0343 0.0524
## 4 x2P 0.0282 0.00192 14.7 2.13e-22 0.0244 0.0321
## 5 FT 0.0177 0.00286 6.20 4.36e- 8 0.0120 0.0234
c_overall_tidy_pts <- lm(PTS ~ AST + DRB + ORB + BLK + TOV, data = centres)
tidy(c_overall_tidy_pts, conf.int = TRUE)## # A tibble: 6 x 7
## term estimate std.error statistic p.value conf.low conf.high
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) -58.3 36.8 -1.58 0.118 -132. 15.3
## 2 AST 0.662 0.455 1.46 0.150 -0.246 1.57
## 3 DRB 0.0150 0.269 0.0556 0.956 -0.523 0.552
## 4 ORB 0.654 0.367 1.78 0.0798 -0.0798 1.39
## 5 BLK 2.44 0.534 4.57 0.0000231 1.37 3.50
## 6 TOV 5.06 0.982 5.16 0.00000264 3.10 7.03
Point Guard
pg_ppg_pts_predict <- pg %>%
filter(PPG >= 10) %>%
mutate(pg_r_hat = predict(pg_overall_tidy_ppg, newdata = .)) %>%
ggplot(aes(pg_r_hat, PTS, label = player_name)) +
geom_point() +
geom_text(nudge_x = 2, cex = 2) +
geom_smooth()Shooting Guard
sg_ppg_pts_predict <- sg %>%
filter(PPG >= 10) %>%
mutate(sg_r_hat = predict(sg_overall_tidy_ppg, newdata = .)) %>%
ggplot(aes(sg_r_hat, PTS, label = player_name)) +
geom_point() +
geom_text(nudge_x = 2, cex = 2) +
geom_smooth()Small Forward
sf_ppg_pts_predict <- sf %>%
filter(PPG >= 10) %>%
mutate(sf_r_hat = predict(sf_overall_tidy_ppg, newdata = .)) %>%
ggplot(aes(sf_r_hat, PTS, label = player_name)) +
geom_point() +
geom_text(nudge_x = 2, cex = 2) +
geom_smooth()Power Forward
pf_ppg_pts_predict <- pf %>%
filter(PPG >= 10) %>%
mutate(pf_r_hat = predict(pf_overall_tidy_ppg, newdata = .)) %>%
ggplot(aes(pf_r_hat, PTS, label = player_name)) +
geom_point() +
geom_text(nudge_x = 2, cex = 2) +
geom_smooth()Centres
Point Guard
pg_pts_hat <- pg %>%
mutate(pg_hat = predict(pg_overall_tidy_ppg, newdata = .))
pg_salary <- pg_pts_hat %>%
ggplot(aes(Salary, pg_hat, colour = Pos, label = player_name)) +
geom_point() +
geom_text(nudge_y = 1, cex = 2)
pg_salary # Gives the predicted points average against the players salary, to see where the value is. We select D'Angelo Russell at Point Guard. Shooting Guard
sg_pts_hat <- sg %>%
mutate(sg_hat = predict(sg_overall_tidy_ppg, newdata = .))
sg_salary <- sg_pts_hat %>%
ggplot(aes(Salary, sg_hat, colour = Pos, label = player_name)) +
geom_point() +
geom_text(nudge_y = 1.5, cex = 2)
sg_salary # Gives the predicted points average against the players salary, to see where the value is. We select Donovan Mitchell at Shooting Guard. Small Forward
sf_pts_hat <- sf %>%
mutate(sf_hat = predict(sf_overall_tidy_ppg, newdata = .))
sf_salary <- sf_pts_hat %>%
ggplot(aes(Salary, sf_hat, colour = Pos, label = player_name)) +
geom_point() +
geom_text(nudge_y = 1.5, cex = 2)
sf_salary # Gives the predicted points average against the players salary, to see where the value is. Depending on salary space, we either pick Kevin Durant or Kawhi Leonard at Small Forward as they stand out from the pack of lower priced players.Power Forward
pf_pts_hat <- pf %>%
mutate(pf_hat = predict(pf_overall_tidy_ppg, newdata = .))
pf_salary <- pf_pts_hat %>%
ggplot(aes(Salary, pf_hat, colour = Pos, label = player_name)) +
geom_point() +
geom_text(nudge_y = 1.5, cex = 2)
pf_salary # Gives the predicted points average against the players salary, to see where the value is. We select either Julius Randle or Tobias Harris at the Power Forward position. Centres
c_pts_hat <- centres %>%
mutate(c_hat = predict(c_overall_tidy_ppg, newdata = .))
c_salary <- c_pts_hat %>%
ggplot(aes(Salary, c_hat, colour = Pos, label = player_name)) +
geom_point() +
geom_text(nudge_y = 1.5, cex = 2)
c_salary # Gives the predicted points average against the players salary, to see where the value is. We select Karl-Anthony Towns at Centre. selected_player_pg <- pg %>%
filter(player_name == "D'Angelo Russell") # Filter for the chosen PG
selected_player_sg <- p_stats %>%
filter(player_name == "Donovan Mitchell") # Filter for the chosen SG
selected_player_sf <- p_stats %>%
filter(player_name == "Kevin Durant") # Filter for the chosen SF
selected_player_pf <- p_stats %>%
filter(player_name == "Tobias Harris") # Filter for the chosen PF
selected_player_c <- p_stats %>%
filter(player_name == "Karl-Anthony Towns") # Filter for the chosen C
selected_team <- bind_rows(selected_player_c, selected_player_pf, selected_player_sf, selected_player_sg, selected_player_pg) # Combine above filtered players and combine to express the chosen side.
selected_team## # A tibble: 5 x 40
## # Groups: Pos [5]
## player_name Pos Age Tm Salary G GS MP FG FGA FGp x3P
## <chr> <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Karl-Antho… C 23 MIN 7.84e6 77 77 2545 681 1314 0.518 142
## 2 Tobias Har… PF 26 TOT 1.48e7 82 82 2847 611 1254 0.487 156
## 3 Kevin Dura… SF 30 GSW 3.00e7 78 78 2702 721 1383 0.521 137
## 4 Donovan Mi… SG 22 UTA 3.11e6 77 77 2598 661 1530 0.432 188
## 5 D'Angelo R… PG 22 BRK 7.02e6 81 81 2448 659 1517 0.434 234
## # … with 28 more variables: x3PA <dbl>, x3Pp <dbl>, x2P <dbl>, x2PA <dbl>,
## # x2Pp <dbl>, eFGp <dbl>, FT <dbl>, FTA <dbl>, FTp <dbl>, ORB <dbl>,
## # DRB <dbl>, TRB <dbl>, AST <dbl>, STL <dbl>, BLK <dbl>, TOV <dbl>, PF <dbl>,
## # PTS <dbl>, PTSpm <dbl>, FTpm <dbl>, BLKpm <dbl>, ASTpm <dbl>, STLpm <dbl>,
## # TOVpm <dbl>, x3Ppm <dbl>, PPG <dbl>, APG <dbl>, RPG <dbl>